УСТАРЕВШЕЕ РЕШЕНИЕ
Хорошо, я нашел возможное решение. Я проверил это на своей собственной системе, но на самом деле это довольно просто.
Вы должны использовать customRenderer
в опции columns
. Почитайте об этом, если вы еще этого не сделали. Идея состоит в том, что вы даете каждой ячейке свой собственный рендерер. В этой пользовательской функции вы можете сделать что-то вроде этого:
var colsToHide = [3,4,6]; // hide the fourth, fifth, and seventh columns
function getCustomRenderer() {
return function(instance, td, row, col, prop, value, cellProperties) {
if (colsToHide.indexOf(col) > -1) {
td.hidden = true;
} else {
td.hidden = false;
}
}
}
Что делает этот рендерер, так это скрывает ячейки, указанные в переменной colsToHide
. Все, что вам нужно сделать сейчас, это добавить элемент DOM, который позволяет пользователю выбирать, какой из них, и поэтому каждый раз, когда таблица отображается (что происходит в основном после любого изменения или при необходимости вручную), ячейки в указанных столбцах будут скрыты, сохраняя Массив data
не поврежден, как вы описали. А когда не в colsToHide
, они перерендериваются, так что убедитесь, что у вас это тоже работает.
Здесь я реализовал его с очень простой функциональностью. Просто введите индекс столбца в поля ввода и наблюдайте, как происходит волшебство.
http://jsfiddle.net/zekedroid/LkLkd405/2/
Лучшее решение: handsontable: скрыть некоторые столбцы без изменения массива/объекта данных
person
ZekeDroid
schedule
12.01.2015