簡體   English   中英

獲取Kendo Grid過濾的數據源計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM