0

真的不知道如何描述这个问题,但这里有。如果你去 Kendo Scheduler Demo 页面:-

http://demos.kendoui.c​​om/web/scheduler/index.html

顶部的复选框过滤数据,但是如果您清除复选框,调度程序会显示所有数据;我需要它不显示任何数据。有任何想法吗?

4

1 回答 1

0

该演示中的示例通过在复选框更改事件上向调度程序数据源对象添加和删除过滤器来工作。要过滤掉所有数据,您可以给过滤器对象一个不可能的条件。

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

为此,您可以将复选框的更改事件处理程序更新为如下所示:

 ....

 $("#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);
        });

 ....
于 2013-12-14T13:29:39.240 回答