Kendo Grid - 在自定义过滤器绑定后阻止对数据库的多次调用

时间:2014-05-13 14:20:58

标签: c# kendo-ui kendo-grid

我们正在使用一些后台过滤来将数据带入剑道网格。 我们正在显示基于某些列的过滤数据 所以我们要求在kendo网格中显示过滤器。 在数据绑定之后,我们将这些过滤器应用于网格以显示过滤后的列

以下是代码段。

                var rows=grid.DataSource;
                var filterArray;
                 filterArray[0]={field: 'Duration',
                                 operator: 'Equal',
                                 value: 20
                                }
                 filterArray[1]={field: 'AgentName',
                                 operator: 'Contains',
                                 value: 'a'
                                 }

                 rows.Filter(filterArray);

但是当应用过滤器时,Kendo会根据过滤器进行servre调用以再次获取数据,这是我们不想要的,因为我们已经显示过滤数据。

有没有办法在不进行服务器调用的情况下在网格上显示过滤器列?我们只需要在过滤器文本框中设置过滤器值。

1 个答案:

答案 0 :(得分:2)

我认为这可以通过以下步骤实现:

  1. 设置过滤器
  2. 刷新网格(不是数据源)
  3. 示例代码:

    var filterArray = new Array();
    filterArray.push({field: 'Duration', operator: 'Equal', value:20});
    filterArray.push({field: 'AgentName', operator: 'Contains', value: 'a'});
    $("#grid").data("kendoGrid").dataSource._filter = { logic: "and", filters: filterArray };
    $("#grid").data("kendoGrid").refresh();
    

    可以找到实例[{3}}(在FirstName中填写内容,然后点击添加过滤器按钮