繁体   English   中英

将过滤器表达式动态添加到Gridview中以过滤两列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM