使用多个下拉列表过滤SqlDataSource

时间:2011-02-04 15:46:18

标签: c# asp.net filtering sqldatasource

我现在有一个SqlDataSource,我希望能够使用3 DropDownList进行过滤。基本上,每个DropDownList都包含表中某个列的值,因此当他们选择其中一个值时,SqlDataSource只显示相关列中具有该值的值。

所以我的表格有点像这样:

  

ID(主键)

     

ManufacturerID

     

ItemTypeID

     

UnitTypeID

3 DropDownList包含以下内容:

  

制造商(值= ManufacturerID)

     

ItemTypes(value = ItemTypeID)

     

UnitTypes(value = UnitTypeID)

我的数据源的过滤器表达式目前是这样的,但它似乎不起作用,除非所有3个框都选择了一个值,这是不理想的。有什么想法吗?我的filterexpression如下:

ItemTypeID = {0} OR ManufacturerID = {1} OR UnitTypeID = {2} OR (ItemTypeID = {0} AND ManufacturerID = {1}) OR (ItemTypeID = {1} AND UnitTypeID = {2}) OR (ManufacturerID = {1} AND UnitTypeID = {2}) OR (ItemTypeID = {0} AND ManufacturerID = {1} AND UnitTypeID = {2})

1 个答案:

答案 0 :(得分:1)

您可以逐个添加过滤条件,如下所示:

//想法不是代码..

yourFilterExpression = "";
if (dropDownList1.SelectedValue != null)
 filterExpression = // filter expression 1
if (dropDownList2.SelectedValue != null)
 filterExpression += // filter expression 2
祝你好运!