JQuery kendo格网过滤器属性未定义

人气:670 发布:2022-10-16 标签: jquery javascript kendo-ui kendo-grid

问题描述

我有一个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

132