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
相关文章