JQuery kendo格网过滤器属性未定义 [英] jquery kendo grid filter property is undefined

查看:0
本文介绍了JQuery kendo格网过滤器属性未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个jQuery函数,它应该根据所单击按钮的服务类型值筛选数据源。

我在Telerik上使用了这篇帖子来获得我的指导:

Adding filters to Grid's source

由此,我创建了buttonFilter()函数:

function buttonFilter() {
    var buttonText = 'All';
    var button = $('#ReadTypeBtnGroup > button.btn.btn-default.active');
    if (button != null) {
        buttonText = button.val();
    }
    console.log('buttonFilter:: buttonText: ' + buttonText);
    var dataSource = $('#grid').data('kendoGrid').dataSource;
    if (dataSource.filter() != undefined) {
        dataSource.filter().length = 0; // remove any existing filters
    }
    if (buttonText != 'All') {
        dataSource.filter().push({ field: "serviceType", operator: 'eq', value: buttonText });
    }
    return buttonText;
}

我收到的错误是:

未捕获的TypeError:无法读取未定义的属性‘Push’

filter()属性应该是一个数组,但当涉及到javascript或jQuery时,我并不擅长。

我做错了什么?

推荐答案

您搞错了。您不能更改筛选器属性更改filter()方法的结果。相反,您必须使用它来传递参数。该方法仅返回只读值。

示例:

var filters = dataSource.filter(); // Getting current filters 
dataSource.filter(null); // Clearing filters
dataSource.filter({ field: "abc", value: "1" }); // Setting new filters

Always check the docs

这篇关于JQuery kendo格网过滤器属性未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆