重置jquery分页插件中的总页数

Kri*_*rma 14 jquery reset jquery-pagination

我正在使用TwbsPagination插件在我的应用程序中显示分页.我们在初始化时设置页面大小时工作正常.但是,根据搜索结果,我想重置总页数.

当我尝试使用时

$('#pagination').twbsPagination({totalPages:10});
Run Code Online (Sandbox Code Playgroud)

它没有重置显示的总页数.

小智 14

在分析了脚本代码之后,我知道这个脚本使用.data()方法来保存分页的视图状态,并且我设法明确地完成了它.

.data():存储与匹配元素关联的任意数据,或者在匹配元素集中的第一个元素的指定数据存储中返回值.参考:http://api.jquery.com/data/

重置分页的解决方案.

你只需要在"列表渲染"或"数据绑定"功能/方法之前调用

$( '#分页')空();

$( '#分页')removeData( "拼焊板-分页").

$( '#分页')解除绑定( "页");

这将重置分页的视图状态数据.("twbs-pagination"是视图状态键).

  • 谢谢你的这个调整.:) (3认同)

Rob*_*tan 6

您可以利用destroy. 见这里

所以:

$('#pagination').twbsPagination('destroy');

然后重新初始化它:

$('#pagination').twbsPagination({totalPages:5});

小提琴


Kri*_*rma 3

啊,我设法以不同的方式完成这项工作。由于我将其与 JQGrid 结合使用,因此我选择了 loadComplete 事件来修补我的代码。步骤如下:

1.创建一个DIV来存放分页按钮(twbs控件)

<div id="paginationholder"></div>
Run Code Online (Sandbox Code Playgroud)

2.创建一个本地js变量来保存当前页面

var currentPage=1;
Run Code Online (Sandbox Code Playgroud)

3.JQgrid AJAX前更新页码

beforeRequest: function () {
    var postData = grid.jqGrid('getGridParam', "postData");
    postData.page = currentPage;
    postData.rows = $("#rows").val();
}
Run Code Online (Sandbox Code Playgroud)

4.在loadComplete上重建分页控件。当用户单击页面时,我将更新页码 ( currentPage) 并重新加载网格。

loadComplete: function (data) {
    $('#paginationholder').html('');
    $('#paginationholder').html('<ul id="pagination" class="pagination-sm"></ul>');
    $('#pagination').twbsPagination({
        startPage: data.page,
        totalPages: data.total,
        visiblePages: 5,
        onPageClick: function (event, page) {
            currentPage = page;
            grid.trigger('reloadGrid');
        }
    });
}
Run Code Online (Sandbox Code Playgroud)