如何“使用已进行一些默认选择的多复选框过滤器过滤serverSide上的Kendo Grid数据”

时间:2019-04-02 06:43:41

标签: javascript jquery kendo-ui kendo-grid kendo-multiselect

我试图在kendo网格的一列上创建一个多复选框过滤器,并将serversidefiltering设置为true。在multiselect-checkbox过滤器中,我想将选择默认设置为某个值。我正在尝试实现以下两种方案:

1)我仍然希望multiSelect过滤器向我显示该字段的所有值,并且只检查默认选择。

2)另外,在多复选框过滤器中选中网格列上的数据并向下过滤到复选框。

我已经尝试了以下方法,并且我几乎已经接近实现1)或2)。但是我正在努力使他们一起工作。

Here's a link to the demo for 1)

使用上述方法,我只能选中默认复选框,但是加载的网格数据不会显示过滤后的数据,而是显示所有内容。

对于2)我尝试了以下

Filter: [{
           field: "ProductName", operator: "eq", value: "Chai"
}],

上面的代码正确过滤了网格上的数据,但是对于菜单过滤器,复选框列表也缩小了范围,只包含服务器发送的过滤项目列表。 (寻找一种解决方案来缩小网格中的数据范围,但在复选框过滤器中显示所有选项)。

有没有办法让这两个要求在具有ServerSide过滤功能的多复选框过滤器上一起工作?

任何解决此问题的想法都受到高度赞赏。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

启用网格的serverPaging时,应为所有“可过滤的多重检查”窗口小部件提供dataSource。这意味着,您将必须在服务器上实现方法,该方法将返回要在过滤器中显示的项目列表。

columns: [
{
    field: "FirstName",
    filterable: {
        multi: true,
        //when serverPaging of the Grid is enabled, dataSource should be provided for all the Filterable Multi Check widgets
        dataSource: {
            transport: {
                read: {
                    url: telerikWebServiceBase + "Employees/Unique",
                    dataType: "jsonp",
                    data: {
                        field: "FirstName"
                    }
                }
            }
        }
    },
},

这里是工作中的demo

这是Telerik演示的link