我在Bootstrap表中使用标准分页。我想记住用户选择的cookie页面大小值。
HTML:
<table id="users-table" class="table table-striped table-condensed"
data-toggle="table"
data-url="/data.json"
data-side-pagination="server"
data-pagination="true"
data-page-size="25">
...
</table>
使用Javascript:
$('#users-table').bootstrapTable({
onLoadError: function (status) {
SetErrorMessage('error');
}
});
如何检测页面大小更改以将此值保存在cookie中?
答案 0 :(得分:0)
使用jQuery获取页面大小:
var pagesize = $('#users-table').data('page-size');
使用jquery-cookie插件将值保存在Cookie中:
$.cookie('size', pagesize, {
expires: 30 //Expires in 30 days
});
检索它:
var cookie = $.cookie('size');
并在检索后设置表格大小:
$('#users-table').data('page-size', cookie);
答案 1 :(得分:0)
您必须检测位于表格下方的dropdown
尺寸的点击,以获取用户选择的尺寸,并使用 Jquery-cookies 或 {将其保存在Cookie中{3}} 强>
<强> js-cookie 强>
这是使用js-cookie
:
var page_size = 25; //Default size
//If cookie page_size exist
if( Cookies.get('page_size') != null )
{
page_size = Cookies.get('page_size');
$('#inpost-users-table').data('page-size', page_size); //set page size
}
//When user choose new size
$(document).on('click', '.dropdown-menu', function()
{
var size_selected = $('.pagination-detail .page-size').text();
Cookies.set('page_size', size_selected);
});
希望这会有所帮助。
答案 2 :(得分:0)
您可以覆盖onPreBody和onPageChange方法,以检查pageSize是否已更改,并在发布到服务器之前从cookie设置它。
有代码
var CookieName = "ShipmentsInSessionTablePageSize";
$('#table').bootstrapTable({
onPreBody: function(data) {
var pageSizeCookie = $.cookie(CookieName);
if (pageSizeCookie != null) {
var pageSizeInt = parseInt(pageSizeCookie);
this.pageSize = pageSizeInt;
}
},
onPageChange: function (pageSize, pageNumber) {
$.cookie(CookieName, pageSize, { expires: 30 });
},
...
答案 3 :(得分:0)
为了解决这个问题,您必须使用Bootstrap表插件支持的Cookie扩展。请参阅:https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/cookie和此示例:http://issues.wenzhixin.net.cn/bootstrap-table/#extensions/cookie.html