#tabulator
#табулятор
Вопрос:
Я создаю таблицу с помощью Tabulator, которая кажется отличной и очень мощной.
Мне нужен способ сохранения соответствующих данных таблицы, чтобы ее можно было воссоздавать «на лету».
В настоящее время я думаю, что мне нужно несколько вещей…
- Данные строки — я получаю это с помощью table.getData();
- Столбцы — я получаю это с помощью table.getColumnDefinitions();
Данные строки кажутся идеальными, я могу их сохранить и использовать. Однако информация о столбце, которую я сохраняю, не соответствует размеру столбцов, если я изменил их размер?
Есть ли способ получить ВСЮ соответствующую информацию о столбце, чтобы я мог сохранить и воссоздать ее в точности?
В качестве альтернативы, если есть одна функция 1, которая сохраняет все (данные строки, столбцы (включая порядок, размер и т.д.)) За один раз в виде JSON или чего-то, что может быть удобно
Ответ №1:
Итак, у вас есть несколько вариантов здесь.
Сохранение конфигурации
Если вы просто хотите, чтобы таблица была такой же, какой она была в последний раз, когда пользователь использовал ее на этом компьютере, вы можете посмотреть на использование модуля постоянной конфигурации. Это сохранит копию конфигурации столбца таблицы в локальном хранилище браузера, чтобы при следующей загрузке страницы она была выложена так же.
Расположение столбцов
Если вы хотите сохранить его извне, тогда вы правы, ширина столбца не обновляется в определении после его изменения пользователем.
Если вы хотите получить текущее расположение столбцов, вы можете использовать getColumnLayout
функцию для получения текущего расположения столбцов:
var columnLayout = table.getColumnLayout();
Хотя это будет содержать только ключевые характеристики макета, а не полное определение, вам потребуется объединить их, если вы хотите сохранить их в одном месте.
Более подробную информацию об этом методе можно найти в документации по компоновке столбцов вручную
Комментарии:
1. Спасибо. Возможно, один из них для вашего списка улучшений, чтобы упростить это? Я еще не пробовал, но помечен как принятый.
2. На самом деле это делается таким образом по очень веской причине. большинство разработчиков не хотят сохранять весь обновленный макет столбца. они хотят иметь возможность указывать сами столбцы в коде, чтобы при внесении структурных изменений они отражались в таблице, а затем сохраняли только измененные пользователем параметры, такие как порядок, видимость и ширина. именно так работает встроенная система сохранения,
getColumnLayout
функция и функция сопоставления позволяютsetColumnLayout
вам обрабатывать хранение и извлечение этой информации о стиле, не влияя на базовую структуру таблицы