如何在Adobe Flex中使数据表格的高度等于数据内容

6
在Adobe Flex中,数据表格的高度通常是固定的。但我希望能够根据数据自动调整表格高度。
9个回答

6

您可以通过在datagrid上设置“variableRowHeight”属性为true,并在包含可变高度内容的dataGridColumn上设置“wordWrap”属性为true,来使datagrid的每一行根据该行特定列的内容自适应高度。


5
我不太理解你的问题,但是如果你问如何将数据表格(DataGrid)的大小调整为数据提供者(dataProvider)中的行数,可以尝试以下方法:
dataGrid.rowCount = yourCollection.length;

或者

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

4

我遇到了相同的问题,使用Flex SDK 3.3。多年来,我看到过几个关于此问题的Adobe bug报告,但是bug检查人员总是说已经解决了。我能建议的最好的方法是在数据网格上设置明确的像素高度,或者您可以尝试以下方法:

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

巴特


3

感谢那些说:

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

- 这对于我在Flex 4中实际有效。但是我想指出根据文档,“rowCount包括标题行”,因此我认为答案应该是

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

然而,我认为这篇文档是错误的,因为前一种解决方案对我有效。

否则,这个链接是否有帮助?http://www.actionscript.org/forums/showthread.php3?t=220962


看起来错误已经修复了,以反映在Flex 4.5文档中所说的内容 =) - PicoCreator

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

ADG.rowHeight = 20;

var rht = ADG.rowHeight;

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

这是我找到的解决高级数据网格大小控制的方法。


1
在Spark DataGrid中,您可以将requestedRowCount设置为dataProviderLength,但条件是不要为Datagrid设置高度。
此外,对于长度小于3的dataProvider,它始终会显示3行。
请注意,Spark还提供了requestedMaxRowCount和requestedMinRowCount。

另外,variableRowHeight="false"。 - ggkmath

1
迄今为止,我在使用Flex时遇到的最奇怪的问题是如何使列表和数据网格简单地按其内容大小调整(不显示滚动条或任何空行)。即使有可变行高,我本以为这应该是非常直接的。似乎几乎没有其他人遇到过这个问题?!
<mx:DataGrid rowCount="{yourCollection.length}"/>

我反复看到上面的解决方案 - 它不起作用。当集合中有多个项目时,我会得到一个滚动条和一个额外的空白行。


我遇到了同样的问题。非常烦人的错误。我在rowCount上使用绑定表达式,但什么也没有发生。我仍然得到了一行额外的数据。 - Laxmidi

0
当然,在您的 datagrid MXML 中避免使用 height="100%" 或 top="10" bottom="123" 这样的东西。

0

感谢Brat的回答,它对我有所帮助(在某种程度上)。只需要稍作修改,当我们使用上述计算来计算高度时,会出现垂直滚动条,我们还需设置verticalScrollPolicy = "off",以确保其不会显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接