0

你好全能社区,

我正在尝试将 bbGrid 与骨干分页一起使用。我已经设法让分页工作,因为我可以将 page 和 per_page 发送到服务器,并且 bbGrid 显示正确的项目数和页码。但我无法让分页在网格中工作,因为我的集合没有返回正确的长度值。

这是我的收藏:

define([ 
    'backbone-pageable',
    'models/DeliveryModel' 
], function(BackbonePageable, DeliveryModel) {

    var DeliveryCollection = Backbone.PageableCollection.extend({

        model : DeliveryModel,

        url : '/UIServices/rs/material/v1/deliveries',

        // Parse server response to handle total number of items
        parseState: function (resp, queryParams, state, options) {
            return {totalRecords : parseInt(options.xhr.getResponseHeader("X-Result-Counter"))};
        }
    });

    return DeliveryCollection;
});

我希望 collection.length 返回 X-Result-Counter 的值,但它总是返回 per_page 的值。我错过了什么?

4

2 回答 2

2

collection.length返回集合中包含的模型的长度。在这种情况下,它是per_page长度,因为只有当前页面的模型存储在集合中。

如果要检索总长度,则应使用collection.state.totalRecords.

于 2013-10-11T13:56:50.590 回答
0

经过大量检查,我得出的结论是 bbGrid 和主干分页的组合不是一个好主意。您可能会破解 bbGrid 以使用服务器端分页,但更好的解决方案是更改网格实现。

我决定切换到 Backgrid,它的工作原理与 bbGrid 几乎相同。我必须为标题列构建自己的搜索框,并为选择每页的项目数构建自己的选择器,但这只是几行代码。

所以我的建议是:如果你需要服务器端的分页、排序和搜索;在bbGrid之前选择Backgrid!

于 2013-10-23T12:30:23.383 回答