Dojo — EnhancedGrid не отображается при первой загрузке страницы

У меня есть следующий EnhancedGrid:

var newGrid = new EnhancedGrid({
                         store : this.resultStore,
                         structure : this.resultGridLayout,
                         autoHeight:true
                     });

newGrid.placeAt(this.resultGridNode);
newGrid.startup();

Я разместил сетку под «dijit.layout.TabContainer», и эта вкладка по умолчанию не выбрана.

Когда страница загружается в первый раз, таблица не появляется ... или, скорее, я бы сказал, что таблица выглядит как строка ... когда я проверил с помощью firebug, обнаружил, что данные присутствуют, однако высота и ширина dojoxGridMasterHeader и другие css, связанные с сеткой классы равны нулю...
В следующий раз, когда я внесу изменения в какой-либо входной параметр, который меняет значения в сетке, появится таблица..

Пробовал решения, представленные в следующем потоке, которые мне не помогли: EnhancedGrid в TabContainer не работает


person Pavan Rao    schedule 18.09.2015    source источник


Ответы (2)


Вы пытались запустить виджет?

newGrid.startup();

А затем поместите его в DOM.

newGrid.placeAt(this.resultGridNode);
person AndreasH    schedule 18.09.2015
comment
привет .. спасибо за ответ .. да, я пробовал это .. это не работает .. Таблица выглядит как строка .. когда я проверил с помощью firebug, обнаружил, что данные присутствуют, но высота и ширина равны нулю ... - person Pavan Rao; 18.09.2015

У меня возникла аналогичная проблема при работе с dijit.layout.TabContainer и Gridx. Вы должны вызвать метод resize() вкладки при ее первом появлении. Вы также можете вызвать функцию resize() для слушателя tabSwitch.

Код должен выглядеть примерно так:

tabContainer.selectedChildWidget.resize()

Но это действительно зависит от того, как вы используете контейнер.

person Tarang    schedule 18.09.2015