【问题标题】:Refresh Datagrid with Hierarchical Data使用分层数据刷新 Datagrid
【发布时间】:2009-12-03 12:46:23
【问题描述】:

当底层 ArrayCollection 发生变化时,如何刷新 Datagrid 中显示的数据?

<nmoschitz:dataProvider>
    <mx:HierarchicalData source="{arrCol_groupedData}"
         childrenField="accounts"/>
</nmoschitz:dataProvider>

调用简单的刷新(例如使用简单的 arraycollection 作为数据提供者,或对 Grouping Collection 进行刷新)不起作用。 同样将 arrayCollection 重新分配给 Hierarchical Data,然后将其再次分配给 Datagrid 也不起作用(即使调用 invalidateProperties() 或 validateNow())。

有什么想法吗?有人建议扩展 HierarchicalData 并引发手动更改事件,但这对我来说似乎很尴尬。

谢谢, 马丁

【问题讨论】:

  • 我将整个分层数据重新分配给数据网格。但是,只有 arraycollection 需要重新分配给分层数据。这样就解决了问题。

标签: apache-flex actionscript-3


【解决方案1】:

您可以尝试刷新 arrayCollection,然后在网格上调用 invalidateList()

【讨论】:

    【解决方案2】:

    我将整个分层数据重新分配给数据网格。但是,只有 arraycollection 需要重新分配给分层数据。这样就解决了问题。

    【讨论】:

      【解决方案3】:

      您可以扩展 HierarchicalData 并覆盖 source 属性设置器以引发 CollectionChange 事件:

      package mypackage
      {
      import mx.collections.HierarchicalData;
      import mx.events.CollectionEvent;
      import mx.events.CollectionEventKind;
      
      public class ModifiedHierarchicalData extends HierarchicalData
      {
      override public function set source(value:Object):void
      {
      super.source = value;
      var event:CollectionEvent =
      new CollectionEvent(CollectionEvent.COLLECTION_CHANGE) ;
      event.kind = CollectionEventKind.RESET;
      dispatchEvent(event);
      }
      }
      }
      

      【讨论】:

      • 首先检查 (super.source != value) 是否可以节省一些噪音。
      【解决方案4】:

      只需展开根节点并以编程方式再次关闭即可刷新 UI。

                         if(!dGGrid.isItemOpen(itemData)){
                              dGGrid.expandItem(itemData,true);
                              dGGrid.expandItem(itemData,false)
                          }else{
                              dGGrid.expandItem(itemData,false);
                              dGGrid.expandItem(itemData,true);
                          }
      

      【讨论】:

        猜你喜欢
        • 2013-11-06
        • 2010-12-19
        • 2010-11-12
        • 2010-11-22
        • 1970-01-01
        • 2021-04-29
        • 1970-01-01
        • 2011-11-18
        • 1970-01-01
        相关资源
        最近更新 更多