2015-12-02 48 views
0

我在设置Kendo Grid的总记录数时出现了一个奇怪的问题。 我正在根据搜索查询填充网格。结果在点击提交按钮时加载。Kendo Grid - 项目总数设置不正确(我正在使用Ajax调用来填充远程数据)

网格分页通过服务器端代码来控制。因此,搜索结果被缩减为结果的子集,并且检索到的记录数量按照为网格设置的页面大小。 我也提到了一个字段来获得结果的总数。

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

我设置的结果,电网这样的(这工作!) $( '#信息搜索结果')。数据( 'kendoGrid')。dataSource.data(response.SearchResults) 但问题是,数页面总是设置为1

我尝试设置“总”网格数据源明确的财产,

$( '#信息搜索结果')。数据( '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 

我能够填充效果,但问题是,因为总的设置不正确,分页不工作。

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

回答

1

您必须在架构上设置'total',而不是在dataSource本身上。

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

这个例子是从the official Doku

+0

感谢您的帮助。还有复制了一些其他的问题也是如此。最后,我通过将搜索功能实现移动到传输来解决了这个问题: data:function(){....}和在搜索按钮中单击,我只是调用$('#SearchResult')。data('kendoGrid')。dataSource.fetch(); – user2357530

相关问题