2009-05-26 61 views
0

我有一個數據網格,它的大小取決於調用我的數據庫的結果。對數據庫的調用返回每行有30+個值的對象。當返回的行數超過80-90時,datagrid呈現奇數。它顯示前50-60行罰款,但它然後顯示空白行,他們甚至繼續顯示在數據網格的邊界之外。flex datagrid在檢索數據時凍結

任何人有任何想法發生了什麼?我使用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" 

回答

1

Flash影片尺寸限制爲2880px(http://kb2.adobe.com/cps/144/tn_14437.html)。也許你的數據網格超出了這些限制,並導致渲染錯誤。是否有任何異常被拋出?

無論如何,我會用JustFoo的建議去使用滾動條。這是有道理的,因爲閃光燈只需渲染可見的內容,這對客戶來說將是一個巨大的性能提升。

2

是否有一個特定的原因,您希望將行計數設置爲返回數據的長度?

如果您只是嘗試將數據網格的高度設置爲100%,則會使用數據網格填充可視區域,並且任何行的溢出都會導致出現垂直滾動條。

希望這會有所幫助。

+0

我有rowCount集合的原因是因爲我希望網格每次返回結果數時動態分組。 – cduggan 2009-05-27 08:00:17

0

聽起來有兩個問題:

1)根據rowCount是超出顯示器是數據網格的可視區域的。

2)看來你使用的是陣列不是自定義對象,以便更改到陣列,如長度並不會明顯......

從Adobe網站: http://livedocs.adobe.com/flex/3/html/help.html?content=about_dataproviders_2.html

如果使用原始數據對象(如數組)作爲控件的數據提供者,Flex會自動將該對象封裝在集合包裝中。控件不會自動檢測直接對原始對象進行的更改。例如,數組長度的改變不會導致控件的更新。但是,您可以使用對象代理,偵聽器接口或itemUpdated屬性來通知視圖中的某些更改。