我有一个数据网格,它的大小会根据对我的数据库调用的结果而增长。对数据库的调用返回每行具有30+值的对象。当返回的行数超过大约80-90时,datagrid呈现奇数。它显示前50-60行,但它显示空行,甚至继续显示在数据网格的边框之外。
任何人有什么想法发生了什么?我使用mxml webservice来检索数据。
<mx:DataGrid dataProvider="{resultsData}" rowCount="{resultsData.length}" allowDragSelection="false"
id = "confRoomLookupResults" width="948"
variableRowHeight="true" draggableColumns="false" wordWrap="true" resizableColumns="false"
borderColor="#E0E3E5" borderStyle="inset" x="10" top="35"
答案 0 :(得分:2)
是否有特定原因要将行数设置为返回数据的长度?
如果你只是尝试将datagrid的高度设置为100%,这将填充带有datagrid的可视区域,任何行溢出都会导致出现垂直滚动条。
希望这有帮助。
答案 1 :(得分:1)
Flash影片的尺寸(http://kb2.adobe.com/cps/144/tn_14437.html)限制为2880像素。也许您的数据网格超出了这些限制,并且导致渲染错误。是否有任何例外被抛出?
无论如何,我会选择JustFoo的建议并使用滚动条。这是有道理的,因为flash只需渲染可见的内容,这对客户端来说将是一个很大的性能提升。
答案 2 :(得分:0)
听起来有两个问题:
1)rowCount超出了数据网格可视区域的显示范围。
2)您似乎使用的是数组而不是自定义对象,因此对数组的更改(如长度)将不会明显...
来自Adobe网站: http://livedocs.adobe.com/flex/3/html/help.html?content=about_dataproviders_2.html
如果使用原始数据对象(如Array)作为控件的数据提供程序,Flex会自动将对象包装在集合包装器中。控件不会自动检测直接对原始对象所做的更改。例如,数组长度的改变不会导致控件的更新。但是,您可以使用对象代理,侦听器接口或itemUpdated属性来通知视图某些更改。