Запомнить размер страницы в таблице начальной загрузки

Я использую стандартную нумерацию страниц в таблице 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?


person Jacek    schedule 13.11.2015    source источник


Ответы (4)


Чтобы решить эту проблему, вы должны использовать расширение Cookie, которое поддерживается плагином Bootstrap table. См. это: https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/cookie и этот пример: http://issues.wenzhixin.net.cn/bootstrap-table/#extensions/cookie.html

person Dennis Hernández    schedule 18.11.2015

Вы должны обнаружить клик в размере dropdown, расположенном под таблицей, чтобы получить размер, выбранный пользователем, и сохранить его в файлах cookie, используя Jquery-cookie или 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);
}); 

Надеюсь это поможет.

person Zakaria Acharki    schedule 13.11.2015

Используйте jQuery, чтобы получить размер страницы:

var pagesize = $('#users-table').data('page-size');

Сохраните значение в файле cookie с помощью подключаемого модуля jquery-cookie:

$.cookie('size', pagesize, {
      expires: 30 //Expires in 30 days
});

Получить его:

var cookie = $.cookie('size');

И установите размер таблицы после получения:

$('#users-table').data('page-size', cookie);
person Rudie Visser    schedule 13.11.2015

Вы можете переопределить методы onPreBody и onPageChange для проверки изменения размера страницы и установить его из файла 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 });
        },
        ...
person Jacek    schedule 16.11.2015