3 c# asp.net ado.net asp.net-2.0
在我的应用程序中,我使用数据视图来应用过滤器选项动态传递的过滤器.如果有2个过滤器参数,则应对参数1过滤数据视图,然后按参数2过滤.我正在使用一个在for循环中调用的方法,其中我将count设置为使用列表框选择的总no.of参数,但仅对最后一个参数进行过滤.这是我的代码:
string str = "";
for (int i = 0; i < listbox.Items.Count; i++)
{
if (listbox.Items[i].Selected)
{
if (str != string.Empty)
{
str = str + "," + listbox.Items[i].Text;
}
else
{
str = str + listbox.Items[i].Text;
}
}
}
string[] items = str.Split(',');
for (int i = 0; i < items.Length; i++)
{
ApplyFilter(items[i],dv);
}
private DataView ApplyFilter(string str,DataView newdv)
{
newdv.RowFilter = "[" + str + "]=" + ddl.SelectedItem.ToString();
return newdv;
}
Run Code Online (Sandbox Code Playgroud)
请提供合适的解决方案.
提前致谢...
Can*_*var 10
您应该完全应用您的过滤器,而不是逐个应用:
newdv.RowFilter = "Column1 = " + value1 + " AND Column2 = " + value2;
Run Code Online (Sandbox Code Playgroud)
因此,您可以将代码更改为:
string[] items = str.Split(',');
string filter = string.Empty;
for (int i = 0; i < items.Length; i++)
{
filter += items[i] + " = " + dropdown.SelectedValue;
if (i != items.Length - 1)
{
filter += " AND ";
}
}
newdv.RowFilter = filter;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21163 次 |
最近记录: |