Как запустить пересчет ширины столбца GridX после запуска сетки?

Согласно документации:

https://github.com/oria/gridx/wiki/Create-the-Simplest-Gridx

Никогда не забывайте вызывать grid.startup(), поскольку для расчета ширины столбца и рендеринга макета требуется доступ к информации о геометрии узлов сетки DOM.

Если у меня есть сетка со столбцами, ширина которых не указана, а autoWidth установлено в false, startup() вычисляет размер столбцов так, чтобы они заполняли всю область просмотра по горизонтали. Однако, если область просмотра расширена, после последнего столбца вставляется дополнительное пустое пространство. Если область просмотра сужена, последние столбцы не видны (и прокрутка не отображается).

Поэтому я думаю, что лучший обходной путь — запустить пересчет размеров столбцов вручную после изменения размера области просмотра. Но я не могу найти метод API для этого.

Как вызвать перерасчет ширины столбца и отрисовку макета на существующей сетке?


person Web Devie    schedule 23.07.2013    source источник


Ответы (1)


Что я сделал для этой ситуации, так это настроил обработчик событий для отслеживания событий изменения размера окна, а затем установил ширину на текущую ширину сетки. При создании сетки:

function _resizeToWindow(grid, gridId) {
  grid.resize({w: dom.byId(gridId).offsetWidth, h: undefined});
}

on(window, "resize", function() {
  _resizeToWindow(grid, gridId);
});

Выглядит немного странно изменение размера сетки до текущей ширины сетки, но вызов этой функции приведет к повторному отображению сетки с соответствующей шириной столбцов для новой ширины сетки.

person hexedpackets    schedule 08.08.2013
comment
Мне нужно было только изменить gridId на узел родительского контейнера сетки, потому что исходный элемент DOM был пуст, и он работает как шарм. - person Web Devie; 12.08.2013