Kendo grid setdatasource渲染寻呼机无效

时间:2018-03-20 14:46:57

标签: jquery kendo-ui kendo-grid

我需要grid.setDataSource(ds)来设置过滤器,但添加此脚本会禁用网格的页数。因此,我将网格设置为20以获取页面大小,但相反,它会在视图中显示所有内容。寻呼机的作用就像它起作用,这意味着,如果单击向左或向右,页面会发生变化,并且计数器会在寻呼机中发生变化,但实际视图不会更改,因为它会加载所有数据并忽略页面大小。所以我一直坚持如何让它一起工作。

  var grid = $("#grid").data("kendoGrid");
  var ds = populateAwardDataSource(JSON.parse(results));
  ds.read();
  grid.dataSource.data(ds.data());
  grid.setDataSource(ds);

  function populateAwardDataSource(dataJson) {
    var dataSource = new kendo.data.DataSource({
        type: "json",
        data: dataJson,
        batch: true,
        serverPaging: true,
        schema: {
            model: {
                id: "clientProgramId",
                fields: {
                    index: { type: "number" },
                    cycle: { type: "number" },
                    ID: { type: "string" },
                    action: { type: "command" }
                }
            },
        },
        pageSize: 20,
    });
    return dataSource;
}

如果我取出脚本grid.setDataSource(ds);,寻呼机的工作方式应该如此,但过滤器不会设置正确的数据。

1 个答案:

答案 0 :(得分:0)

好的,我能够搞清楚。而不是重置结果中的数据,重置网格数据源似乎工作。所以:

        var grid = $("#grid").data("kendoGrid");
        var ds = populateAwardDataSource(JSON.parse(results));
        ds.read();
        grid.dataSource.data(ds.data());
        grid.setDataSource(grid.dataSource);
        grid.refresh();