Как я могу сделать высоту сетки данных равной содержимому данных в Adobe Flex

В Adobe Flex высота сетки равна фиксированной высоте. Я хочу, чтобы высота сетки данных зависела от данных.


person LANE    schedule 07.11.2008    source источник


Ответы (9)


Вы можете настроить каждую строку сетки данных так, чтобы она соответствовала содержимому определенного столбца этой строки, установив для атрибута «variableRowHeight» значение true в сетке данных и установив для атрибута «wordWrap» значение true в столбце dataGridColumn, который будет содержать переменную. Содержание высоты.

person smartdirt    schedule 27.12.2008

Я не совсем понимаю ваш вопрос, но если вы спрашиваете, как изменить размер DataGrid на количество строк в dataProvider, вы можете попробовать:

dataGrid.rowCount = yourCollection.length;

or

<mx:DataGrid rowCount="{yourCollection.length}"/>
person cliff.meyers    schedule 01.01.2009

Я получаю ту же проблему, используя Flex SDK 3.3. Я видел несколько отчетов об ошибках Adobe за эти годы, но специалисты по проверке ошибок всегда говорят, что проблема решена. Лучшее, что я могу предложить, это установить явную высоту пикселя в сетке данных, или вы можете попробовать это:

dg.height = dg.measureHeightOfItems(0, dgDataProvider.length) + dg.headerHeight;

Барт

person Community    schedule 06.08.2009

Спасибо тем, кто говорит:

<mx:DataGrid rowCount="{yourCollection.length}"/>

- это действительно работает для меня во Flex 4. Однако я хотел бы отметить, что согласно документации «rowCount включает строку заголовка», поэтому я полагаю, что ответ должен быть

<mx:DataGrid rowCount="{yourCollection.length + 1}"/>

Тем не менее, я думаю, что документ неверен, потому что первое решение работает для меня.

Иначе это поможет? http://www.actionscript.org/forums/showthread.php3?t=220962

person Fletch    schedule 31.01.2011
comment
Похоже, что ошибка исправлена, чтобы отразить то, что написано в документации в flex 4.5 =) - person PicoCreator; 26.07.2011

Безусловно, самая странная проблема, с которой я сталкивался во Flex, заключается в том, как просто сделать списки и сетки данных размером с их содержимым (без отображения полосы прокрутки или каких-либо пустых строк). Я бы подумал, что это будет совершенно прямолинейно даже с переменной высотой строки. Кажется, мало у кого еще есть такая проблема?!

<mx:DataGrid rowCount="{yourCollection.length}"/>

Неоднократно видеть приведенное выше решение, которое не работает. Я получаю полосу прокрутки и дополнительную пустую строку, когда в коллекции более одного элемента.

person Community    schedule 21.05.2009
comment
У меня такая же проблема. Очень раздражающий баг. Я использую выражение привязки для rowCount, и ничего не происходит. Я все еще получаю дополнительную строку. - person Laxmidi; 30.07.2010

var rwcnt = xmllist.length();// dataprovider.length

ADG.rowHeight = 20;

var rht = ADG.rowHeight;

ADG.height = (rwcnt * rht) + 26;

это то, что я получил решение для управления размером расширенной сетки данных

person Mahesh    schedule 21.06.2011

В Spark DataGrid вы можете установить для requestedRowCount значение dataProviderLength, НО при условии, что вы не задаете высоту для Datagrid.

Кроме того, для dataProvider, длина которого меньше 3, всегда будут отображаться 3 строки.

Примечание. Также Spark предлагает нам запрашиваемыйMaxRowCount и запрашиваемыйMinRowCount.

person Yozef    schedule 01.11.2011
comment
Кроме того, переменнаяRowHeight=false. - person ggkmath; 08.06.2013

Конечно, избегайте в вашей сетке данных MXML что-то вроде height="100%" или top="10" bottom="123"

person eBuildy    schedule 13.01.2010

Спасибо Брат за ваш ответ, который сработал для меня (в некотором смысле). Есть небольшая модификация, когда мы вычисляем высоту, используя приведенный выше расчет, появляется вертикальная прокрутка, нам также нужно установить verticalScrollPolicy = "off", чтобы она никогда не отображалась

person Nikhil    schedule 27.10.2009