清除过滤器框时,Kendo Scheduler会显示所有数据

时间:2013-11-29 12:11:51

标签: kendo-ui kendo-scheduler

不知道如何描述这个问题,但是这里有。如果您转到Kendo Scheduler Demo页面: -

http://demos.kendoui.com/web/scheduler/index.html

顶部的复选框会过滤数据,但如果清除复选框,则调度程序会显示所有数据;我需要它来显示没有数据。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

该演示中的示例通过向复选框上的Scheduler dataSource对象添加和删除过滤器来更改事件。要过滤掉所有数据,可以为过滤器对象提供不可能的条件。

这不是最佳解决方案,但我找不到另一种隐藏数据的方法。

这样做可以更新复选框'change eventhandler,如下所示:

 ....

 $("#people :checkbox").change(function (e)
        {
            var checked = $.map($("#people :checked"), function (checkbox)
            {
                return parseInt($(checkbox).val());
            });

            var filter;
            if (checked.length == 0)
            {
                filter = {
                    logic:"and",
                    filters: [
                        {
                            operator: "eq",
                            field: "ownerId",
                            value: 1
                        }, {
                            operator: "neq",
                            field: "ownerId",
                            value: 1
                        }]
                };
            }
            else {
                var filter = {
                    logic: "or",
                    filters: $.map(checked, function(value) {
                        return {
                            operator: "eq",
                            field: "ownerId",
                            value: value
                        };
                    })
                };
            }

            var scheduler = $("#scheduler").data("kendoScheduler");

            scheduler.dataSource.filter(filter);
        });

 ....