Kendo UI网格筛选错误

4

我正在尝试通过编程方式过滤Kendo UI网格,但是出现了以下错误:

类型错误:""。toLowerCase不是一个函数

下面是我用于过滤网格的代码:

function filterSavedTransactions(checkboxstate,grid,field1,field2,amount)
     {
         if (!parseFloat(amount))
             amount = 0;
            
         if (checkboxstate) {

             var ds = $('#' + grid.attr('id')).data("kendoGrid").dataSource;

             ds.filter([{
                 "logic":"and",
                 filters: [
                    {
                        field: field2,
                        operator: "gt",
                        value: amount
                    },
                    {
                        field: field1,
                     operator: "neq",
                     value: checkboxstate
                    }]
             }]);
         }
         else {
             $('#' + grid.attr('id')).data("kendoGrid").dataSource.filter({});
         }
     }

我正在参考下面的链接,并按照相同的方式操作,但在我的电脑上无法运行。 请提供建议。 http://jsfiddle.net/valchev/MG89G/

1
你确定错误在这段代码中吗?我在这里看不到任何与你的类型错误有关的东西。 - Bobby
是的,我确定,因为这个函数用于过滤记录。 - JSHunjan
你能展示一下调用那个函数的代码片段吗? - Bobby
4个回答

2

我也遇到了这个问题。将数字列添加到数据源模式中并不能解决它。

在列定义中添加type: 'number'也无法解决它。

最终对我有用的是将过滤文本parseInt()并将运算符从“包含”更改为“等于”。


2

不知怎么的,我修改了代码并解决了问题。我的做法是将代码行:value: amount替换为value: parseFloat(amount),这样就可以正常工作了。


0

Kendo似乎喜欢将字段转换。我不得不添加:

template: function (dataItem) {
    return kendo.toString(dataItem.FriendlyStatus);
}

0

这对我也有用,谢谢Ebbs

columns: [
        {
            field: "MyFieldNameWhichisInteger", title: "My Field Name", width: "200px",
             filterable: {
                extra: false,
                operators: {
                    string: {
                        startswith: "Starts with",
                        eq: "Is equal to",
                        neq: "Is not equal to"
                    }
                },
                cell: {
                    operator: "eq",
                    suggestionOperator: "eq"
                }
            },
            template: function (dataItem) {
                return kendo.toString(dataItem.MyFieldNameWhichisInteger);
            }

        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接