2016-11-03 2 views
0

У меня есть эти пять полей ID, имя, адрес, телефон и факс, отображаемые на данных. Я использую функцию видимости столбцов, и по умолчанию я показываю первые четыре столбца. Предположим, я делаю столбец Факс видимым и столбцом телефона невидимым. Теперь, если я обновляю страницу, я снова вижу те же четыре столбца. Мой вопрос: можем ли мы сохранить эту видимость/невидимость?Сохранение невидимости столбцов столбцов данных

Спасибо.

ответ

0

Обновить страницу? Вы хотите перерисовать страницу с данными? (например, щелкнув заголовок столбца, чтобы сортировать или нажимать «следующий» в datatable?)

Если да, используете ли вы javascript/jquery для изменения видимости ваших элементов?

Выполнение этого будет работать изначально - но поскольку datatables не знает, что jquery изменил элемент, когда он перерисовывает таблицу (в новом порядке или на новой странице или что-то еще), она вернет ваши изменения в любом состоянии, которое оно понимает в таблице.

Чтобы ваши изменения сохранялись при перерисовке, вам необходимо использовать datatables api - так что данные данных знают, что вы делаете. как это:

var mytable= $('#mytable').DataTable(); 
mytable.column(0).visible(false); 

однако Если вы хотите, чтобы эти изменения сохраняются между обновлениями на веб-страницы в браузере, то вам необходимо настроить сессий или сохранить эти настройки в базе данных.

Тогда каждый раз, когда страница в запросе вы убедитесь, что данные, и вы можете решить динамически OnLoad, как инициализацию ваш DataTable:

$(document).ready(function() { 
    $('#example').dataTable({ 
    "aoColumnDefs": [ 
     { "bVisible": false, "aTargets": [ userHiddenColumn ] } 
    ] }); 
}); 
+0

Обновить страницу означает перейти на другую страницу, а затем вернуться к же datatable page. Этот процесс обновляет страницу данных. Я думал то же самое, чтобы хранить столбцы в БД. Любое тело с другими решениями? –

+0

, чтобы таблица запомнила это состояние между сеансами/посещениями пользователя, вам нужно сохранить конфигурации в какой-то базе данных и динамически инициализировать таблицу для каждого GET. Есть много способов сделать это, но на самом деле нет никаких альтернативных решений ... – Paul

+0

Нам не нужна сессия/база данных, чтобы запомнить состояние как его уже часть данных. stateSave: true, Пожалуйста, check https://datatables.net/extensions/buttons/examples/column_visibility/stateSave.html –

Смежные вопросы