将Filter Expression动态添加到Gridview以筛选两列

本文关键字:筛选 两列 Gridview Expression Filter 动态 添加 | 更新日期: 2023-09-27 18:26:06

请参阅以下代码:

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。这将使我在Cloum"TSOType"满足要求时获得预期结果。我现在想要的是在FilterExpression中再添加一个列筛选器。例如,现在我有

SqlDataSource1.FilterExpression += " TSOType like '" + l.Value + "%'";

但我想去

SqlDataSource1.FilterExpression += " TSOType like '" + l.Value + "%' + TSOStatus like '" + j.Value + "%'";

我应该如何编码,我需要另一个for循环吗?

将Filter Expression动态添加到Gridview以筛选两列

SqlDataSource控件仅在CCD_ 2模式。

请参阅此处了解详细信息。因此,为SqlDataSource对象添加DataSourceMode="DataSet"

您可以使用AND运算符为FilterExpression 添加多个条件

SqlDataSource1.FilterExpression += " TSOType like '" + l.Value + "%' + AND TSOStatus like '" + j.Value + "%'";