Search code examples
javascripthtmlcsstwitter-bootstrapbootstrap-table

Remember page size in bootstrap table


I use standard pagination in Bootstrap table. I want to remember in cookie page size value selected by user.

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');
    }
});

How can I detect page size changing to save in cookie this value?


Solution

  • You can override onPreBody and onPageChange method for check if pageSize is changed and set it from cookie before post to server.

    There is code

        var CookieName = "ShipmentsInSessionTablePageSize";
    
        $('#table').bootstrapTable({
    
            onPreBody: function(data) {
    
                var pageSizeCookie = $.cookie(CookieName);
                if (pageSizeCookie != null) {
    
                    var pageSizeInt = parseInt(pageSizeCookie);
                    this.pageSize = pageSizeInt;
                }
            },
            onPageChange: function(pageNumber, pageSize) {
    
                $.cookie(CookieName, pageSize, { expires: 30 });
            },
            ...