[英]Get Kendo Grid filtered datasource count
我在kendo網格中使用工具欄過濾器Dropdown。 當用戶選擇下拉列表時,我需要獲取已過濾記錄的計數。 下面的代碼不適合我
function ExamDateChange() { // function on dropdown change
var value = this.value(),
grid = $("#grid").data("kendoGrid");
if (value) {
grid.dataSource.filter({ field: "ExamID", operator: "eq", value: value });
grid.dataSource.fetch(function () {
var view = dataSource.view();
alert(view.length);
});
} else {
grid.dataSource.filter({});
}
}
您可以使用fetch,但不要使用dataSource.view().length
您應該使用dataSource.total()
方法。
就像是:
function ExamDateChange() { // function on dropdown change
var value = this.value(),
grid = $("#grid").data("kendoGrid");
if (value) {
grid.dataSource.filter({ field: "ExamID", operator: "eq", value: value });
grid.dataSource.fetch(function () {
alert(view.dataSource.total());
});
} else {
grid.dataSource.filter({});
}
}
請在此處查看: http : //jsfiddle.net/OnaBai/f19k0vrt/5/鍵入兩個日期,然后單擊“過濾”按鈕,它將在出生日期應用過濾器並顯示總計。
好的,我們走了,
我也嘗試了下拉列表中的chage事件,但它並沒有像你說的那樣工作。 在設置Grid的dataSource之前調用該事件。
所以我認為在綁定Grids dataSource時需要回調,因此來自Grid的dataBound事件。
...
dataBound: function(){
console.log("Grid data bound");
// this should do the trick
alert(grid.data("kendoGrid").dataSource.data().length);
},
...
這是一個基本的小提琴 。
我希望這就是你所需要的。
更新:
在使用serverpaging的情況下,您可以使用數據源中的requestEnd事件。
您必須查找服務器響應。 在小提琴中你得到了一個“__count”屬性。
更新了小提琴
...
requestEnd: function (e) {
var response = e.response;
var type = e.type;
alert(response.d.__count); // displays "77"
},
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.