Можно ли использовать функцию автоматического определения высоты Dojo / Dijit DataGrid на основе размера родительского элемента вместо числа строк? - PullRequest
4 голосов
/ 14 января 2012

У меня есть сетка данных, которая периодически обновляется, и число строк внутри нее неуклонно растет с течением времени. Он находится внутри родительского div с высотой 60% экрана.

Если я установлю autoheight, скажем, 5 строк, таблица будет работать правильно. Когда добавляется шестая строка, в пределах сетки данных появляется полоса прокрутки, и я могу прокручивать вверх / вниз, а заголовки остаются фиксированными в верхней части и видимыми. К сожалению, когда у меня много данных, это пустая трата места - у меня есть 60% высоты экрана для работы, но одновременно отображается только 5 строк.

Если для autoheight задано значение false, отображаемая полоса прокрутки прикрепляется к родительскому элементу div. Прокрутка вверх / вниз позволяет мне видеть данные, но заголовки в верхней части сетки прокручиваются вне поля зрения.

Есть ли способ попросить сетку данных показать столько строк, сколько она может уместить, и предоставить полосу прокрутки для остальных?

---- РЕДАКТИРОВАТЬ ----

Установка autoheight на false будет именно тем, что я хочу, если сетка данных будет изменять размер вместе с родителем при изменении размера моего браузера. Есть ли хороший способ добиться этого?

1 Ответ

0 голосов
/ 14 января 2012

Я думаю, что вы ищете grid.resize ();Если вы посмотрите на файл «Grid.js.uncompressed.js» в ночных файлах dojox здесь: http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/ Вы можете точно увидеть, что он делает.DataGrid должен наследовать этот метод, если вы его используете.Один из способов его использования - изменить размер содержащего элемента div на основе высоты окна, а затем изменить размер сетки внутри:

function changeHeight() {
    document.getElementById("div Id in which the dojo grid is there").style.height ="your desired height";
    dijit.byId('Id of the dojo grid').resize();
    dijit.byId('Id of the dojo grid').update();
}

Другой метод выбора - сделать что-то вроде этого:

...