【问题标题】:How to disable automatic sorting in Editable Datagrid in Flex 4如何在 Flex 4 的可编辑数据网格中禁用自动排序
【发布时间】:2011-07-10 21:06:06
【问题描述】:

我有一个可编辑的数据网格。如果通过单击数据网格的任何标题来应用排序,则可以正常工作。但在那之后,如果数据网格的任何一行中的数据值发生变化,则会自动应用排序。如何防止这种行为?即仅当用户单击数据网格的任何标题时才应应用排序,并且当用户修改网格中的数据时不应应用排序。

【问题讨论】:

    标签: apache-flex actionscript-3 datagrid flex4


    【解决方案1】:

    您必须将sortableColumns 设置为false 并处理headerRelease 事件,您可以在其中对数据源执行sorting manually

    <mx:DataGrid sortableColumns="false" headerRelease="onHeaderRelease(event)" ...
    

    【讨论】:

    • 感谢您的回复,我的要求是在编辑数据网格的任何列后停止自动排序,即如果用户修改了可编辑数据网格的任何列,itemEditEnd 事件会随着自动排序而触发。例如,如果用户更改了第一行中的值,则在此更改后,修改后的行可能会通过自动排序成为数据网格的最后一行。我的问题是我们可以停止这种自动排序吗?将 sortableColumns 设置为 false 只会阻止用户通过单击标题来停止排序。
    • @zolo:据我了解,在您第一次点击标题之前,不会应用自动排序。
    • 是的,我想停止在 itemEditEnd 之后触发的自动排序,即使在单击标题后也是如此。但是用户可以随时通过单击标题手动对数据进行排序。
    【解决方案2】:

    在您的项目编辑器中提交值之前,只需调用Object(owner).dataProvider.disableAutoUpdate()

    【讨论】:

      【解决方案3】:

      我知道您在 Flex 4 中提出了这个问题,但我希望我在 Flex 3 中找到的解决方案会有所帮助。

      我也遇到了同样的问题,但后来我意识到数据中的某些东西一定会触发排序发生。 事实证明,我正在将数据设置为 [Bindable]。看到排序自动发生是有道理的,因为值更改调度 propertyChange 事件。

      如果您确实需要将数据设为 [可绑定],请使用自定义绑定: http://livedocs.adobe.com/flex/3/html/help.html?content=ascomponents_4.html

      【讨论】:

        猜你喜欢
        • 2011-03-04
        • 1970-01-01
        • 2011-01-29
        • 1970-01-01
        • 2020-10-28
        • 2011-01-11
        • 2012-02-10
        • 2011-04-24
        • 1970-01-01
        相关资源
        最近更新 更多