ajax请求上的kendo分页问题

时间:2013-11-25 08:21:11

标签: javascript ajax kendo-ui kendo-grid

初始加载后,我尝试使用ajax请求过滤kendo网格,因为我基于网格外的许多控件进行过滤。我的请求数据在newObj中是正确的,我从服务器获得的结果是正确的。 我正在使用此代码。

$.ajax({
    url: 'Books/GetAll',
    type: "POST",
    async: false,
    data: JSON.stringify(newObj),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (returnValue) {
        var grid = $('#kBooks').getKendoGrid();
        grid.dataSource.data(returnValue.GridData);
        **grid.dataSource.totalPages(returnValue.TotalCount);**
        grid.refresh();
    },
    error: function (request, status, error) {
    }
});

我在网格上显示了正确的数据,但网格变得不再可分页,尽管我将returnValue.TotalCount设置为超过1页。 我只需要知道如何在设置数据后设置网格上的总页面值。 感谢

1 个答案:

答案 0 :(得分:1)

totalPages方法无法设置总页数。如果为服务器分页配置了数据源,则只需设置总计。但是在这种情况下,数据源需要自己检索数据(使用其传输配置)。

如果您尚未启用服务器分页,则无需设置总分。数据源将分页可用数据(通过data方法设置)。

如果您已启用服务器分页,则需要更改实施:

dataSource: {
  schema: {
    // Describe the response format
    data: "GridData",
    total: "TotalCount"
  },
  transport: {
    read: function(options) {
      $.ajax({
        url: 'Books/GetAll',
        type: "POST",
        async: false,
        data: JSON.stringify(newObj),
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (returnValue) {
          // notify the data source that data has been received
          options.success(returnValue);
        },
        error: function (request, status, error) {
        }
      }); 
    }
  }
}