Как сделать так, чтобы высота сетки данных соответствовала содержанию данных в Adobe Flex - PullRequest
6 голосов
/ 07 ноября 2008

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

Ответы [ 9 ]

6 голосов
/ 28 декабря 2008

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

5 голосов
/ 01 января 2009

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

dataGrid.rowCount = yourCollection.length;

или

<mx:DataGrid rowCount="{yourCollection.length}"/>
4 голосов
/ 06 августа 2009

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

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

Bart

3 голосов
/ 31 января 2011

Спасибо за высказывание:

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

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

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

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

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

1 голос
/ 01 ноября 2011

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

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

Примечание. Кроме того, Spark предлагает нам запрашиваемый MaxRowCount и запрашиваемый MinRowCount.

1 голос
/ 21 июня 2011
var rwcnt = xmllist.length();// dataprovider.length

ADG.rowHeight = 20;

var rht = ADG.rowHeight;

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

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

1 голос
/ 21 мая 2009

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

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

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

0 голосов
/ 13 января 2010

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

0 голосов
/ 27 октября 2009

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

...