在Telerik MVC网格过滤器中应用规则

时间:2012-01-31 02:17:10

标签: model-view-controller grid telerik

我正在使用Telerik MVC Grid,并且需要在下面应用过滤规则,但它似乎只适用于前两列,并忽略所有其余列。

这里JS代码:(假设网格是$(“#grid”)。data(“tgrid”))

function extTelerikGridFilter(grid, value) {
    if (!$.isArray(grid.columns)) throw "Error : First Parameter accept only array.";

    var colLength = grid.columns.length - 1;
    var filterText = "";

    var tempArr = new Array();
    for (var i = 0; i < grid.columns.length; i++) {
        filterText = filterText + "substringof({0},'{1}')".replace("{0}", grid.columns[i].member).replace("{1}", value);
        if (colLength > 0) {
            filterText = filterText + "~or~";
            colLength = colLength - 1;
        }
    }
    console.log(filterText);
    grid.filter(filterText);
}

console.log(filterText)的结果: 的 substringof(Doc_No, 'Opriyandi')〜或〜substringof(类型, 'Opriyandi')〜或〜substringof(Request_By, 'Opriyandi')〜或〜substringof(REQUEST_DATE, 'Opriyandi')〜或〜substringof(部门, 'Opriyandi')〜或〜substringof(植物, 'Opriyandi')〜或〜substringof(描述, 'Opriyandi')〜或〜substringof(IT_Support, 'Opriyandi')〜或〜substringof(状态,” Opriyandi')

在附件中应用过滤器之前和之后查看。

这是某种错误还是我做错了什么..谢谢。

*使用Telerik MVC 2011.3.1229
*如果您需要有关我的问题的其他信息,请询问我。 :)

附件:
- BeforeApplyingFilter.png
- AfterApplyingFilter

1 个答案:

答案 0 :(得分:1)

我也有这个问题。经过一些实验,我发现我们应该从头部开始包括每个表达式。

因此,您的过滤字符串将如下所示:

(((((((((substringof(Doc_No,'Opriyandi'))~or~substringof(Type,'Opriyandi'))~or~substringof(Request_By,'Opriyandi'))~or~substringof(Request_Date,'Opriyandi'))~or~substringof(Department,'Opriyandi'))~or~substringof(Plant,'Opriyandi'))~or~substringof(Description,'Opriyandi'))~or~substringof(IT_Support,'Opriyandi'))~or~substringof(Status,'Opriyandi'))


您可以修改代码:

..
    for (var i = 0; i < grid.columns.length; i++) {
        -->    filterText = "(" + filterText + "substringof({0},'{1}')".replace("{0}", grid.columns[i].member).replace("{1}", value) + ")";    <--
        if (colLength > 0) {
            filterText = filterText + "~or~";
            colLength = colLength - 1;
        }
..

PS我正在使用2011.3.1306

PS2 我写了关于自定义过滤的文章 - 请参阅link