【问题标题】:Kendo Grid - Total number of items are not setting properly ( I am using Ajax call to populate remote data)Kendo Grid - 项目总数设置不正确(我正在使用 Ajax 调用来填充远程数据)
【发布时间】:2015-12-02 07:44:03
【问题描述】:

我在设置剑道网格的总记录数时遇到了奇怪的问题。 我正在根据搜索查询填充网格。结果在提交按钮单击时加载。

通过服务器端代码控制网格分页。因此,搜索结果被缩减为结果的子集,检索到的记录数根据为网格设置的页面大小而定。 我还提到了一个获取结果总数的字段。

服务器端执行后,结果以 JSON 格式发回。响应包含结果数据和 TotalRecordCount 。

我正在将结果设置为这样的网格(这有效!) $('#SearchResult').data('kendoGrid').dataSource.data(response.SearchResults) 但问题是,页数总是设置为 1

我尝试显式设置 Grid 数据源的 "total" 属性,

$('#SearchResult').data('kendoGrid').dataSource.total(response.TotalResults) 但这没有正确设置

我尝试了不同的方法

 var dataSource = new kendo.data.DataSource({
                            data: response.SearchResults,
                            total: response.TotalRecordNumbers
                        }); 

 var resultGrid = $('#SearchResult').data('kendoGrid');
                        resultGrid.setDataSource(dataSource);//does not work 

我能够填充结果,但问题是由于总数设置不正确,分页不起作用。

非常感谢任何帮助。 谢谢你

【问题讨论】:

    标签: ajax pagination kendo-grid datasource


    【解决方案1】:

    您必须在架构上设置“总计”,而不是在数据源本身上。

    var dataSource = new kendo.data.DataSource({
      transport: {
        /* transport configuration */
      },
      serverGrouping: true,
      schema: {
        total: function(response) {
          return response.total;
        }
      }
    });
    

    本例抄自the official Doku

    【讨论】:

    • 感谢您的帮助。还有一些其他问题。最后,我通过将 Search 函数实现移动到 transport: { read: { url: '@Href("~/Outage/Search")', data: function () { ....} 并在搜索中解决了这个问题按钮单击,我只是调用了 $('#SearchResult').data('kendoGrid').dataSource.fetch();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多