Data binding 如何将datalist与多个数据源绑定
我可以用2个数据源绑定一个数据列表吗。场景是我的数据列表绑定在显示产品列表的设计视图上,我想要实现的是,当用户单击侧菜单过滤器时,数据列表应显示与该过滤器单击相关的结果,但是我不知道如何禁用datalist以前的绑定,并根据单击的筛选选项将其与新datalist绑定。我建议在设计视图和数据访问层之间构建一个业务对象。在业务层中,您可以传递一个指示过滤器是什么的参数,并相应地执行操作。然后,您只需设置一个默认过滤器,并在过滤器更改时调用MyGridView.DataBind()。如果这是一个web应用程序,则此业务对象可能位于Data binding 如何将datalist与多个数据源绑定,data-binding,datasource,datalist,Data Binding,Datasource,Datalist,我可以用2个数据源绑定一个数据列表吗。场景是我的数据列表绑定在显示产品列表的设计视图上,我想要实现的是,当用户单击侧菜单过滤器时,数据列表应显示与该过滤器单击相关的结果,但是我不知道如何禁用datalist以前的绑定,并根据单击的筛选选项将其与新datalist绑定。我建议在设计视图和数据访问层之间构建一个业务对象。在业务层中,您可以传递一个指示过滤器是什么的参数,并相应地执行操作。然后,您只需设置一个默认过滤器,并在过滤器更改时调用MyGridView.DataBind()。如果这是一个web
app_code\BLL
Product.cs
Product.cs将包括一个“filter”参数和数据访问层所需的其他参数,例如orderBy、rowStart、rowEnd。比如说,
public class Product
{
public List<Product> GetAll(string filter, string orderBy, int startRowIndex, int maximumRows)
{
List<Product> products = null;
switch(filter)
{
case "option1":
// to do: products = some data access call
break;
case "option2":
// to do: products = some other data access call
break;
default:
throw new InvalidOperationException("Unexpected filter option.");
}
return products;
}
}
公共类产品
{
public List GetAll(字符串过滤器、字符串orderBy、int startRowIndex、int maximumRows)
{
列出产品=空;
开关(过滤器)
{
案例“选项1”:
//待办事项:产品=一些数据访问呼叫
打破
案例“选择2”:
//待办事项:产品=其他一些数据访问呼叫
打破
违约:
抛出新的InvalidOperationException(“意外筛选选项”);
}
退货产品;
}
}
ObjectDataSource将引用业务层,而不是数据访问层:
<asp:ObjectDataSource
TypeName="MyAssembly.BLL.Product"
SelectMethod="GetAll"
...
<SelectParameters>
<Parameter name="filter"...
<Paramter name="param1"...
<asp:gridview ...
DataSourceId="obGridViewSource"