free-jqgrid: скрыть / показать влияние столбца на замороженный столбец?

У меня есть jqgrid с 2 замороженными столбцами. Frozen работает нормально, если я ничего не делаю. После того, как я скрываю / показываю другие столбцы (не замороженные столбцы), замороженные не работают.

Я использую бесплатную версию jqGrid 4.14.0

Я не знаю, что случилось.

Может кто-нибудь мне помочь! Заранее спасибо..

1 ответ

Решение

Если вы используете методы низкого уровня showCol, hideCol, showHideCol непосредственно тогда вы должны выбрать сами, какой из двух способов решения обеспечивает наилучшую производительность в вашем случае.

Отображение / скрытие столбцов происходит относительно медленно, поскольку необходимо просмотреть все строки таблицы, заголовки столбцов (включая панель инструментов фильтра) и изменить стиль встроенного CSS на соответствующих ячейках (display свойство должно быть установлено в none или none значение должно быть удалено). После этого можно изменить высоту и высоту сетки. Если в сетке есть замороженные столбцы, то же самое должно быть сделано в замороженных погружениях. Кроме того, необходимо пересчитать ширину и высоту замерзших погружений, а также пересчитать высоту каждого ряда замерзших колонн.

Таким образом, у одного есть две альтернативы:

  1. скрыть / показать все нужные колонки по вызовам showCol, hideCol, showHideCol а затем вызвать jqGridResetFrozenHeights событие в сетке для принудительного пересчета всех свойств ширины / высоты замороженных погружений
  2. уничтожить замороженные колонны по вызову destroyFrozenColumns, примените скрытие / отображение столбцов, вызвав showCol, hideCol, showHideCol и воссоздать замороженные столбцы еще раз по вызову setFrozenColumns,

Я рекомендую вам сделать несколько тестов, чтобы выбрать, какой из двух вышеуказанных способов обеспечивает наилучшую производительность в вашем приложении.

Другие вопросы по тегам