【问题标题】:Get Kendo Grid filtered datasource count获取 Kendo Grid 过滤的数据源计数
【发布时间】:2014-08-28 06:50:11
【问题描述】:

我在剑道网格中使用工具栏过滤器下拉菜单。当用户选择下拉列表时,我需要获取过滤记录的计数。下面的代码对我不起作用

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({});
        }


    }

【问题讨论】:

    标签: jquery kendo-ui kendo-grid kendo-datasource


    【解决方案1】:

    好的,我们开始吧,
    我也尝试了下拉菜单中的 chage 事件,但它不像你说的那样工作。 在设置 Grid 的 dataSource 之前调用该事件。

    所以我认为我们需要在绑定 Grids 数据源时进行回调,因此来自 Grid 的 dataBound 事件。

    ...
    dataBound: function(){
        console.log("Grid data bound");   
        // this should do the trick    
        alert(grid.data("kendoGrid").dataSource.data().length);
    },
    ...
    

    这是一个基本的fiddle
    我希望这是你需要的。

    更新:
    如果您使用服务器分页,则可以使用数据源中的 requestEnd 事件。
    您必须查找服务器响应。在小提琴中,您有一个“__count”属性。
    已更新 fiddle

    ...
    requestEnd: function (e) {
        var response = e.response;
        var type = e.type;
        alert(response.d.__count); // displays "77"
    },
    ...
    

    【讨论】:

    • 您好!感谢您的回答,但代码返回单页的计数。启用分页后不起作用
    【解决方案2】:

    您可以使用 fetch,但应该使用 dataSource.total() 方法而不是 dataSource.view().length

    类似:

    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/ 输入两个日期并单击“过滤器”按钮,它将在出生日期应用过滤器并显示总数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多