【问题标题】:DataTable DefaultView Rowfilter doesnt workDataTable DefaultView Rowfilter 不起作用
【发布时间】:2014-10-06 18:51:37
【问题描述】:

我有一个使用 DataTable 作为数据源的 gridview。当我尝试对 RowFilter 字符串进行硬编码时,它运行良好,但是当我使用 GetFilterExpression() 时它不起作用。为什么?

我检查了 GetFilterExpression 返回的字符串并将其与 if 检查进行匹配,我发现它与我的硬编码字符串完全匹配。

var list = (List<ResaveBase>)listGridRows;
        var dt = ToDataTable(list);

        dt.DefaultView.RowFilter = GetFilterExpression(); //When hardcoding this, it works
        gvwResavePositions.DataSource = dt;
        gvwResavePositions.DataBind();


private string GetFilterExpression()
{
    string filterExpression = String.Empty;
    filterExpression = string.IsNullOrEmpty(txtPaperId.Text)
            ? string.Empty
            : string.Format("strPaperId IN ({0})", txtPaperId.Text);

    return filterExpression;
}

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    这应该可以解决它:

    gvwResavePositions.DataSource = dt.DefaultView;
    

    【讨论】:

      【解决方案2】:

      据我所知,表达式必须用引号引起来。您的函数结果可能没有引号。 您可以在函数中编写逻辑并仅返回值并调用函数,例如 -

      String.Format("strPaperId IN ({0})", GetFilterExpression());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        • 2015-12-31
        • 2012-03-28
        • 1970-01-01
        相关资源
        最近更新 更多