1

我有一个带有 json 数据的“Bootgrid”网格(不使用 ajax)。

分页按钮工作正常,但我想以编程方式更改当前页面。

像 $("#grid").bootgrid().setCurrentPage(100);

我没有看到 API 提供了一种方法,那么我该如何实现呢?

4

1 回答 1

2

如您所见,bootgrid 还没有提供改变当​​前页面的内置方法。不过,您可以扩展它。

.js将此添加到您正在页面中加载的某些文件中:

$.fn.bootgrid.Constructor.prototype.setCurrentPage = function (page) {
    $(this).find('li.page-' + this.current).removeClass('active');
    $(this).find('li.page-' + page).addClass('active');
    this.current = page;
    return this;
}

您可以将其粘贴.js到用于构建引导网格和加载数据的相同内容中


然后你可以在你的网格中使用它,如下所示:

// create the grid...
var grid = $("#grid-data").bootgrid({
    ajax: false
});

// add some rows with json data
grid.bootgrid('append',
[
    {
      "id": 19,
      "sender": "foo@test.com",
      "received": "2014-05-30T22:15:00"
    },
    {
      "id": 14,
      "sender": "bar@test.com",
      "received": "2014-05-30T20:15:00"
    },
    // ....many rows
]);

// call your custom method, to change to page 3
grid.bootgrid('setCurrentPage', 3);
// calling sort is just a workaround, so bootgrid reloads itself...
grid.bootgrid('sort');

所以基本上,我向它的原型添加了一个新方法,它将改变active按钮(仅用于样式目的),并改变 bootgrid 的current属性。

更改页码后,我们调用该sort方法作为一种变通方法,以强制 bootgrid 重新加载其数据,而无需重新设置页码reload


检查我创建的这个 JSFiddle 。试试看!!

于 2017-03-09T03:47:38.583 回答