2
我可以使用2個數據源綁定數據列表。該場景是我的數據列表綁定在設計視圖上,該視圖顯示產品列表,我想要的是,當用戶點擊側邊菜單過濾器時,數據列表應該顯示與該過濾器點擊相關的結果,但我不知道如何禁用以前的datalist綁定,並根據點擊過濾器選項將其與新的datalist綁定。任何幫助或建議,將不勝感激如何將數據列表與多個數據源綁定
我可以使用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"
祝你好運!