2011-02-04 113 views
0

我有一个SqlDataSource的时刻,我希望能够使用3 DropDownList的过滤。基本上,每个DropDownList都包含表中特定列的值,因此当他们选择其中一个值时,SqlDataSource仅在相关列中显示具有该值的值。过滤SqlDataSource与多个下拉列表

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

ID(主键)

ManufacturerID

ItemTypeID

UnitTypeID

而且3次DropDownList的含有以下:

制造商(值= ManufacturerID)

ItemTypes(值= ItemTypeID)

UnitTypes(值= 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

您可以通过一个类似于下面添加筛选条件之一:

//理念不代码..

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

祝你好运!

+0

感谢哥们 - 我用过那种方法,现在效果很好 – Chris 2011-02-07 10:19:00