请参阅以下代码:
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循环吗?
答案 0 :(得分:0)
SqlDataSource
控件仅支持过滤数据DataSet
模式。
有关详细信息,请参阅here。因此,为DataSourceMode="DataSet"
对象添加SqlDataSource
。
您可以使用AND
运算符为FilterExpression
SqlDataSource1.FilterExpression += " TSOType like '" + l.Value + "%' + AND TSOStatus like '" + j.Value + "%'";