[英]Dynamically add Filter Expression to the Gridview to Filter Two Columns
请参见以下代码:
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataSource1.FilterExpression = "";
foreach (ListItem l in CheckBoxList1.Items)
{
if (l.Selected)
{
HD1.Value += l.Value + ",";
if (SqlDataSource1.FilterExpression == "")
SqlDataSource1.FilterExpression += " TSOType like '" + l.Value + "%'";
else
{
SqlDataSource1.FilterExpression += "or TSOType like '" + l.Value + "%'";
}
}
}
}
当复选框中的项目被选中时,我将过滤器表达式动态分配给Gridview。 当Cloumn“ TSOType”满足要求时,这将给我预期的结果。 我现在想要的是在FilterExpression中再添加一个列过滤器。 例如,现在我有
SqlDataSource1.FilterExpression += " TSOType like '" + l.Value + "%'";
但我想做到
SqlDataSource1.FilterExpression += " TSOType like '" + l.Value + "%' + TSOStatus like '" + j.Value + "%'";
我应该如何编码,是否需要另一个for循环?
SqlDataSource
控件仅在处于DataSet
模式时才支持过滤数据。
详情请参阅此处 。 因此,为SqlDataSource
对象添加DataSourceMode="DataSet"
。
您可以使用AND
运算符为FilterExpression
添加多个条件
SqlDataSource1.FilterExpression += " TSOType like '" + l.Value + "%' + AND TSOStatus like '" + j.Value + "%'";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.