在 adobe Flex 数据网格中,高度等同于固定高度。我想让数据网格高度依赖于数据。
9 回答
您可以通过将数据网格上的“variableRowHeight”属性设置为 true 并将包含变量的 dataGridColumn 上的“wordWrap”属性设置为 true 来设置数据网格的每一行以适应该行特定列的内容高度内容。
我不太明白你的问题,但如果你问如何将 DataGrid 调整为 dataProvider 中的行数,你可以尝试:
dataGrid.rowCount = yourCollection.length;
或者
<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}"/>
尽管如此,我认为 doco 是错误的,因为以前的解决方案对我有用。
否则,这有帮助吗?http://www.actionscript.org/forums/showthread.php3?t=220962
var rwcnt = xmllist.length();// dataprovider.length
ADG.rowHeight = 20;
var rht = ADG.rowHeight;
ADG.height = (rwcnt * rht) + 26;
这就是我控制高级数据网格大小的解决方案
毫无疑问,我在 Flex 中遇到的最奇怪的问题是如何简单地将 Lists 和 DataGrids 的大小设置为它们的内容(不显示滚动条或任何空行)。我原以为即使行高可变,它也会完全直截了当。似乎几乎没有其他人有这个问题?!
<mx:DataGrid rowCount="{yourCollection.length}"/>
反复看到上述解决方案 - 这是行不通的。当集合中有多个项目时,我会得到一个滚动条和一个额外的空白行。
在 Spark DataGrid 中,您可以将requestedRowCount设置为dataProviderLength,但前提是您不为 Datagrid 设置高度。
此外,对于长度小于 3 的 dataProvider,它将始终显示 3 行。
注意 Spark 还为我们提供了 requestedMaxRowCount 和 requestedMinRowCount。
谢谢小子的回答,这对我有用(在某种程度上)。只是稍作修改,当我们用上面的计算计算高度时出现一个垂直滚动,我们还需要设置verticalScrollPolicy = "off"
它永远不显示
当然,避免在您的数据网格 MXML 中使用 height="100%" 或 top="10" bottom="123"