如何将数据列表与多个数据源绑定
问题描述:
我可以使用2个数据源绑定数据列表。该场景是我的数据列表绑定在设计视图上,该视图显示产品列表,我想要的是,当用户点击侧边菜单过滤器时,数据列表应该显示与该过滤器点击相关的结果,但我不知道如何禁用以前的datalist绑定,并根据点击过滤器选项将其与新的datalist绑定。任何帮助或建议,将不胜感激如何将数据列表与多个数据源绑定
答
我建议在设计视图和数据访问层之间建立一个业务对象。在业务层中,您可以传递一个参数来指示过滤器是什么,并据此采取行动。然后你只需要设置一个默认过滤器,并在过滤器发生变化时调用MyGridView.DataBind()。如果这是一个Web应用程序,该业务对象可能生活在
app_code\BLL
Product.cs
Product.cs将包括一个“过滤器”参数,需要对数据访问层的其他参数,可以例如,排序依据,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;
}
}
你ObjectDataSource控件将引用业务层,而不是数据访问层:
<asp:ObjectDataSource
TypeName="MyAssembly.BLL.Product"
SelectMethod="GetAll"
...
<SelectParameters>
<Parameter name="filter"...
<Paramter name="param1"...
<asp:gridview ...
DataSourceId="obGridViewSource"
祝你好运!