Jquery Bootgrid-以编程方式更改当前页面

Jquery Bootgrid-以编程方式更改当前页面,jquery,twitter-bootstrap,jquery-ui,jquery-bootgrid,Jquery,Twitter Bootstrap,Jquery Ui,Jquery Bootgrid,我有一个包含json数据的“Bootgrid”网格(不使用ajax) 分页按钮工作正常,但我希望以编程方式更改当前页面 类似于$(“#grid”).bootgrid().setCurrentPage(100) 我看不到API提供了这样的方法,因此如何实现它?正如您所看到的,bootgrid还没有提供一种内置的方式来更改当前页面。不过,您可以扩展它 将此添加到正在页面中加载的一些.js文件中: $.fn.bootgrid.Constructor.prototype.setCurrentPage =

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

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

类似于$(“#grid”).bootgrid().setCurrentPage(100)


我看不到API提供了这样的方法,因此如何实现它?

正如您所看到的,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;
}
您可以将其粘贴到用于构建bootgrid和加载数据的
.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');
因此,基本上,我向其原型添加了一个新方法,它将更改
活动的
按钮(仅用于样式设置),并更改bootgrid的
当前属性

更改页码后,我们调用
sort
方法作为一种变通方法,以强制bootgrid重新加载其数据,而不重置页码,就像
重新加载
一样



检查我创建的。试试看

谢谢!我真的很喜欢这个解决方案。我最终修改了bootgrid.js以包含一个showPage()方法,该方法基本上是一个load()副本,但将当前行设置为指定的行。哦,这很好,我考虑提供此选项作为替代方案,但请注意,缩小的版本不起作用(除非你自己缩小并替换它,或者只是不使用缩小版)。在另一个关于另一个功能的回答中,我建议做一些类似于
Grid.prototype.doSomething=function()的事情
inside
bootgrid.js
。我想他们不会发布新版本,所以更新包和忘记再次添加此代码可能不会有问题。