【问题标题】:flex datagrid freezes while retrieving dataflex datagrid 在检索数据时冻结
【发布时间】:2009-05-26 20:48:36
【问题描述】:

我有一个数据网格,它的大小取决于对我的数据库的调用结果。对数据库的调用返回一个对象,每行有 30 多个值。当返回的行数超过大约 80-90 时,数据网格呈现奇数。它可以很好地显示前 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"

【问题讨论】:

    标签: apache-flex datagrid


    【解决方案1】:

    您希望将行数设置为返回数据的长度是否有特定原因?

    如果您只是尝试将数据网格的高度设置为 100%,这将用数据网格填满可视区域,并且任何溢出的行都会导致出现垂直滚动条。

    希望这会有所帮助。

    【讨论】:

    • 我设置 rowCount 的原因是因为我希望网格在每次返回结果数时动态分组。
    【解决方案2】:

    Flash 影片 (http://kb2.adobe.com/cps/144/tn_14437.html) 的尺寸限制为 2880 像素。也许您的数据网格超出了这些限制,导致呈现错误。有没有抛出异常?

    无论如何,我都会接受 JustFoo 的建议,只使用滚动条。这是有道理的,因为 flash 只需要渲染可见的内容,这对客户端来说将是一个很大的性能提升。

    【讨论】:

      【解决方案3】:

      听起来有两个问题:

      1) rowCount 超出了数据网格的可视区域的显示范围。

      2) 看来您使用的是 Array 而不是自定义对象,因此对 Array 的更改(例如长度)将不明显...

      来自 Adob​​e 网站: http://livedocs.adobe.com/flex/3/html/help.html?content=about_dataproviders_2.html

      如果您使用原始数据对象(例如数组)作为控件的数据提供者,Flex 会自动将对象包装在集合包装器中。该控件不会自动检测直接对原始对象所做的更改。例如,数组长度的变化不会导致控件的更新。但是,您可以使用对象代理、侦听器接口或 itemUpdated 属性来通知视图某些更改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-01
        • 2016-08-07
        • 2012-02-04
        • 2011-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多