在Adobe Flex中,数据表格的高度通常是固定的。但我希望能够根据数据自动调整表格高度。
您可以通过在datagrid上设置“variableRowHeight”属性为true,并在包含可变高度内容的dataGridColumn上设置“wordWrap”属性为true,来使datagrid的每一行根据该行特定列的内容自适应高度。
dataGrid.rowCount = yourCollection.length;
或者
<mx:DataGrid rowCount="{yourCollection.length}"/>
我遇到了相同的问题,使用Flex SDK 3.3。多年来,我看到过几个关于此问题的Adobe bug报告,但是bug检查人员总是说已经解决了。我能建议的最好的方法是在数据网格上设置明确的像素高度,或者您可以尝试以下方法:
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
var rwcnt = xmllist.length();// dataprovider.length
ADG.rowHeight = 20;
var rht = ADG.rowHeight;
ADG.height = (rwcnt * rht) + 26;
这是我找到的解决高级数据网格大小控制的方法。
<mx:DataGrid rowCount="{yourCollection.length}"/>
我反复看到上面的解决方案 - 它不起作用。当集合中有多个项目时,我会得到一个滚动条和一个额外的空白行。
感谢Brat的回答,它对我有所帮助(在某种程度上)。只需要稍作修改,当我们使用上述计算来计算高度时,会出现垂直滚动条,我们还需设置verticalScrollPolicy = "off"
,以确保其不会显示。