Model view controller 规则在Telerik MVC网格过滤器中的应用

Model view controller 规则在Telerik MVC网格过滤器中的应用,model-view-controller,grid,telerik,Model View Controller,Grid,Telerik,我使用的是Telerik MVC网格,需要应用下面的过滤规则,但它似乎只适用于前两列,而忽略所有其他列 这里是JS代码:(假设网格是$(“#网格”).data(“tgrid”)) 函数extTelerikGridFilter(网格,值){ if(!$.isArray(grid.columns))抛出“错误:第一个参数仅接受数组。”; var colLength=grid.columns.length-1; var filterText=“”; var tempArr=新数组(); 对于(var

我使用的是Telerik MVC网格,需要应用下面的过滤规则,但它似乎只适用于前两列,而忽略所有其他列

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

函数extTelerikGridFilter(网格,值){
if(!$.isArray(grid.columns))抛出“错误:第一个参数仅接受数组。”;
var colLength=grid.columns.length-1;
var filterText=“”;
var tempArr=新数组();
对于(var i=0;i0){
filterText=filterText+“~或~”;
Collelength=Collelength-1;
}
}
console.log(filterText);
grid.filter(filterText);
}
console.log(filterText)的结果: substringof(文件编号,'Opriyandi')或~substringof(类型,'Opriyandi')~或~substringof(请求人,'Opriyandi')或~substringof(请求日期,'Opriyandi')或~substringof(部门,'Opriyandi')~或~substringof(工厂,'Opriyandi')~或~substringof(说明,'Opriyandi')~或~substringof(IT支持,'Opriyandi')或~substringof(状态,'Opriyandi'))

查看附件中应用过滤器前后的情况

这是某种错误还是我做错了什么。。多谢各位

*使用Telerik MVC 2011.3.1229
*请询问我是否需要有关我的问题的其他信息。:)

附件:
-

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

因此,您的筛选器字符串如下所示:

(((((((((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;
        }
..
。。
对于(var i=0;ifilterText=“(“+filterText+”子字符串({0},{1}')”。替换(“{0}”,grid.columns[i].member)。替换(“{1}”,value)+”);0){
filterText=filterText+“~或~”;
Collelength=Collelength-1;
}
..
PS我用的是2011.3.1306


PS2我写了一篇关于自定义过滤的文章-请看。

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

因此,您的筛选器字符串如下所示:

(((((((((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;
        }
..
。。
对于(var i=0;ifilterText=“(“+filterText+”子字符串({0},{1}')”。替换(“{0}”,grid.columns[i].member)。替换(“{1}”,value)+”);0){
filterText=filterText+“~或~”;
Collelength=Collelength-1;
}
..
PS我用的是2011.3.1306

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