В Adobe Flex высота сетки равна фиксированной высоте. Я хочу, чтобы высота сетки данных зависела от данных.
Как я могу сделать высоту сетки данных равной содержимому данных в Adobe Flex
Ответы (9)
Вы можете настроить каждую строку сетки данных так, чтобы она соответствовала содержимому определенного столбца этой строки, установив для атрибута «variableRowHeight» значение true в сетке данных и установив для атрибута «wordWrap» значение true в столбце dataGridColumn, который будет содержать переменную. Содержание высоты.
Я не совсем понимаю ваш вопрос, но если вы спрашиваете, как изменить размер DataGrid на количество строк в dataProvider, вы можете попробовать:
dataGrid.rowCount = yourCollection.length;
or
<mx:DataGrid rowCount="{yourCollection.length}"/>
Я получаю ту же проблему, используя Flex SDK 3.3. Я видел несколько отчетов об ошибках Adobe за эти годы, но специалисты по проверке ошибок всегда говорят, что проблема решена. Лучшее, что я могу предложить, это установить явную высоту пикселя в сетке данных, или вы можете попробовать это:
dg.height = dg.measureHeightOfItems(0, dgDataProvider.length) + dg.headerHeight;
Барт
Спасибо тем, кто говорит:
<mx:DataGrid rowCount="{yourCollection.length}"/>
- это действительно работает для меня во Flex 4. Однако я хотел бы отметить, что согласно документации «rowCount включает строку заголовка», поэтому я полагаю, что ответ должен быть
<mx:DataGrid rowCount="{yourCollection.length + 1}"/>
Тем не менее, я думаю, что документ неверен, потому что первое решение работает для меня.
Иначе это поможет? http://www.actionscript.org/forums/showthread.php3?t=220962
Безусловно, самая странная проблема, с которой я сталкивался во Flex, заключается в том, как просто сделать списки и сетки данных размером с их содержимым (без отображения полосы прокрутки или каких-либо пустых строк). Я бы подумал, что это будет совершенно прямолинейно даже с переменной высотой строки. Кажется, мало у кого еще есть такая проблема?!
<mx:DataGrid rowCount="{yourCollection.length}"/>
Неоднократно видеть приведенное выше решение, которое не работает. Я получаю полосу прокрутки и дополнительную пустую строку, когда в коллекции более одного элемента.
var rwcnt = xmllist.length();// dataprovider.length
ADG.rowHeight = 20;
var rht = ADG.rowHeight;
ADG.height = (rwcnt * rht) + 26;
это то, что я получил решение для управления размером расширенной сетки данных
В Spark DataGrid вы можете установить для requestedRowCount значение dataProviderLength, НО при условии, что вы не задаете высоту для Datagrid.
Кроме того, для dataProvider, длина которого меньше 3, всегда будут отображаться 3 строки.
Примечание. Также Spark предлагает нам запрашиваемыйMaxRowCount и запрашиваемыйMinRowCount.
Конечно, избегайте в вашей сетке данных MXML что-то вроде height="100%" или top="10" bottom="123"
Спасибо Брат за ваш ответ, который сработал для меня (в некотором смысле). Есть небольшая модификация, когда мы вычисляем высоту, используя приведенный выше расчет, появляется вертикальная прокрутка, нам также нужно установить verticalScrollPolicy = "off", чтобы она никогда не отображалась