mx.collectionsIHierarchicalCollectionViewCursor IHierarchicalCollectionViewCursor 接口定义用于双向枚举层次结构集合视图的接口。mx.collections:IViewCursor IHierarchicalCollectionViewCursor 接口定义用于双向枚举层次结构集合视图的接口。此光标提供查找项目当前深度的功能。 mx.collections.IViewCursormx.controls.IHierarchicalCollectionViewcurrentDepth 包含位于此光标引用的源集合中的位置处的节点的深度。 包含位于此光标引用的源集合中的位置处的节点的深度。如果该光标超出了集合末尾,则此属性包含 0。 SummaryField2 SummaryField2 类代表 SummaryRow 实例中的一个属性。<mx.SummaryField2> inherits all the tag attributes of its superclass, and defines the following tag attributes:

  <mx:SummaryField2
  Properties 
    dataField="No default"
    label="No default"
    summaryOperation="SUM"
  />
  
]]>
Object SummaryField2 类代表 SummaryRow 实例中的一个属性。每个 SummaryRow 实例都指定一个或多个用于创建数据摘要的 SummayField2 实例。

注意:在先前版本的 Flex 中,您使用了 SummaryField 类来创建摘要数据。SummaryField2 类是 Flex 4 中的新类,提供比 SummaryField 更好的性能。

使用 dataField 属性指定用于生成摘要的数据字段;使用 label 属性指定为容纳摘要数据而创建的数据字段的名称;使用 summaryOperation 属性指定如何为数值字段创建摘要。可以指定下列值之一:SUMMINMAXAVGCOUNT

或者可以指定一个 ISummaryCalculator 实现来计算摘要。

以下示例基于 AdvancedDataGrid 控件的数据提供程序的两个字段创建摘要行:

  <mx:AdvancedDataGrid id="myADG" 
    initialize="gc.refresh();"> 
    <mx:dataProvider>
      <mx:GroupingCollection id="gc" source="{dpFlat}">
        <mx:Grouping>
          <mx:GroupingField name="Region">
            <mx:summaries>
              <mx:SummaryRow summaryPlacement="group">
                <mx:fields>
                  <mx:SummaryField2 dataField="Actual" 
                    label="Min Actual" summaryOperation="MIN"/>
                  <mx:SummaryField2 dataField="Actual" 
                    label="Max Actual" summaryOperation="MAX"/>
                </mx:fields>
              </mx:SummaryRow>
            </mx:summaries>
          </mx:GroupingField>
          <mx:GroupingField name="Territory">
            <mx:summaries>
              <mx:SummaryRow summaryPlacement="group">
                <mx:fields>
                  <mx:SummaryField2 dataField="Actual" 
                    label="Min Actual" summaryOperation="MIN"/>
                  <mx:SummaryField2 dataField="Actual" 
                    label="Max Actual" summaryOperation="MAX"/>
                </mx:fields>
              </mx:SummaryRow>
            </mx:summaries>
          </mx:GroupingField>
        </mx:Grouping>
      </mx:GroupingCollection>
    </mx:dataProvider> 
 
    <mx:columns>
      <mx:AdvancedDataGridColumn dataField="Region"/>
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"
        headerText="Territory Rep"/>
      <mx:AdvancedDataGridColumn dataField="Actual"/>
      <mx:AdvancedDataGridColumn dataField="Estimate"/>
      <mx:AdvancedDataGridColumn dataField="Min Actual"/>
      <mx:AdvancedDataGridColumn dataField="Max Actual"/>
    </mx:columns>
  </mx:AdvancedDataGrid>
  
mx.controls.AdvancedDataGridmx.collections.GroupingFieldmx.collections.SummaryRowSummaryField2 构造函数。dataFieldnull为其计算摘要的数据字段。 summaryOperationSUM应对子项执行的函数。可以为数值字段指定下列值之一:SUMMINMAXAVGCOUNT。或者可以指定一个 ISummaryCalculator 实现来计算摘要。 构造函数。 dataField 为其计算摘要的数据字段。 为其计算摘要的数据字段。 label 摘要对象内部使用的属性,它是 SummaryObject 类的一个实例,用于存储摘要信息。 摘要对象内部使用的属性,它是 SummaryObject 类的一个实例,用于存储摘要信息。

例如,如果将 label 属性设为“Summary”,则计算的摘要将置于摘要对象中名为“Summary”的属性中。包含摘要数据的 SummaryObject 实例的属性将按以下方式显示:

{Summary:1000}
mx.collections.SummaryObjectmx.collections.SummaryRow.summaryObjectFunctionsummaryFunction
summaryOperation 针对子代执行的摘要。SUMSUM 针对子代执行的摘要。此属性的值可以是下列值之一:
  • 对于数值字段:SUMMINMAXAVGCOUNT
  • 用于实现自定义 ISummaryCalculator 接口以计算自定义摘要的类的实例。
mx.collections.ISummaryCalculator
IHierarchicalCollectionView IHierarchicalCollectionView 接口定义用于层次结构数据或分组数据的接口。mx.collections:ICollectionView IHierarchicalCollectionView 接口定义用于层次结构数据或分组数据的接口。通常,将此数据与 AdvancedDataGrid 控件一起使用。 mx.controls.AdvancedDataGridaddChildAt 在数据的特定索引处为数据的节点添加子节点。如果成功添加节点,则为 trueparent用于定义父节点的 Object。 newChild用于定义新节点的 Object。 index要从中插入子节点的从零开始的索引。 在数据的特定索引处为数据的节点添加子节点。 addChild 为数据的节点添加子节点。如果成功添加节点,则为 trueparent用于定义父节点的 Object。 newChild用于定义新节点的 Object。 为数据的节点添加子节点。 closeNode 关闭要隐藏其子项的节点。node定义该节点的 Object。 关闭要隐藏其子项的节点。 getChildren 返回子项的集合(如果存在)。包含子节点的 ICollectionView 实例。 node定义该节点的 Object。如果为 null,则返回顶级节点的集合。 返回子项的集合(如果存在)。 getNodeDepth 返回集合中节点的深度。节点的深度。 node定义该节点的 Object。 返回集合中节点的深度。 getParentItem 返回节点的父项。包含作为子项的节点的父节点,如果为顶级节点,则返回 null;如果无法确定父节点,则返回 undefinednode定义该节点的 Object。 返回节点的父项。顶级节点的父项为 nullopenNode 打开要显示其子项的节点。node定义该节点的 Object。 打开要显示其子项的节点。 removeChildAt 从指定索引处的节点删除子节点。如果成功,则为 true;如果失败,则为 falseparent当前作为此子节点父项的节点对象。对于顶级节点,请将 parent 设置为 nullindex要删除的子节点(相对于父项)的从零开始的索引。 从指定索引处的节点删除子节点。 removeChild 从父节点删除子节点。如果成功删除节点,则为 trueparent用于定义父节点的 Object;对于顶级节点,为 nullchild用于定义要删除的子节点的 Object。 从父节点删除子节点。 hasRoot 一种标志,如果为 true,表示当前数据提供程序具有根节点;例如,层次结构中的单个顶级节点。 一种标志,如果为 true,表示当前数据提供程序具有根节点;例如,层次结构中的单个顶级节点。XML 和 Object 就是具有根节点的数据类型,而 Lists 和 Arrays 不属于这种数据类型。 openNodes 包含数据的所有开型分枝节点的数据提供程序元素的对象 Array。 包含数据的所有开型分枝节点的数据提供程序元素的对象 Array。 showRoot 指定是否显示数据提供程序的根节点的布尔值标志。true 指定是否显示数据提供程序的根节点的布尔值标志。如果源数据具有根节点,并且此属性设置为 false,则该集合中将不包含根项目。该集合中将仅包含此根项目的后代。

此属性不影响没有根节点的源,如 List 和 Array 对象。

hasRoot
source IHierarchicalCollectionView 的源数据。mx.collections:IHierarchicalData IHierarchicalCollectionView 的源数据。
SummaryObject 在对分组数据执行自定义数据摘要时,SummaryObject 类定义用于存储信息的对象。Object 在对分组数据执行自定义数据摘要时,SummaryObject 类定义用于存储信息的对象。使用 SummaryRow.summaryObjectFunction 属性和 SummaryField.summaryFunction property 向应用程序添加自定义摘要逻辑。 mx.collections.SummaryFieldmx.collections.SummaryRowSummaryObject 构造函数。 构造函数。 SummaryField SummaryField 类代表 SummaryRow 实例中的一个属性。Object SummaryField 类代表 SummaryRow 实例中的一个属性。每个 SummaryRow 实例都指定一个或多个用于创建数据摘要的 SummayField 实例。

使用 dataField 属性指定用于生成摘要的数据字段;使用 label 属性指定为容纳摘要数据而创建的数据字段的名称;使用 operation 属性指定如何为数值字段创建摘要。可以指定下列值之一:SUMMINMAXAVGCOUNT

以下示例基于 AdvancedDataGrid 控件的数据提供程序的两个字段创建摘要行:

  <mx:AdvancedDataGrid id="myADG" 
    initialize="gc.refresh();"> 
    <mx:dataProvider>
      <mx:GroupingCollection id="gc" source="{dpFlat}">
        <mx:Grouping>
          <mx:GroupingField name="Region">
            <mx:summaries>
              <mx:SummaryRow summaryPlacement="group">
                <mx:fields>
                  <mx:SummaryField dataField="Actual" 
                    label="Min Actual" operation="MIN"/>
                  <mx:SummaryField dataField="Actual" 
                    label="Max Actual" operation="MAX"/>
                </mx:fields>
              </mx:SummaryRow>
            </mx:summaries>
          </mx:GroupingField>
          <mx:GroupingField name="Territory">
            <mx:summaries>
              <mx:SummaryRow summaryPlacement="group">
                <mx:fields>
                  <mx:SummaryField dataField="Actual" 
                    label="Min Actual" operation="MIN"/>
                  <mx:SummaryField dataField="Actual" 
                    label="Max Actual" operation="MAX"/>
                </mx:fields>
              </mx:SummaryRow>
            </mx:summaries>
          </mx:GroupingField>
        </mx:Grouping>
      </mx:GroupingCollection>
    </mx:dataProvider> 
 
    <mx:columns>
      <mx:AdvancedDataGridColumn dataField="Region"/>
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"
        headerText="Territory Rep"/>
      <mx:AdvancedDataGridColumn dataField="Actual"/>
      <mx:AdvancedDataGridColumn dataField="Estimate"/>
      <mx:AdvancedDataGridColumn dataField="Min Actual"/>
      <mx:AdvancedDataGridColumn dataField="Max Actual"/>
    </mx:columns>
  </mx:AdvancedDataGrid>
  

此类已被弃用并被新类 SummaryField2 取代。在类 SummaryField2 中不存在属性 operationsummaryFunction。在 SummaryField2 中引入了一个新属性 summaryOperation

mx.controls.AdvancedDataGridmx.collections.GroupingFieldmx.collections.SummaryRowSummaryField 构造函数。dataFieldnull为其计算摘要的数据字段。 operationSUM应对子项执行的函数。可以为数值字段指定下列值之一:SUMMINMAXAVGCOUNT 构造函数。 dataField 为其计算摘要的数据字段。 为其计算摘要的数据字段。 label 摘要对象内部使用的属性,它是 SummaryObject 类的一个实例,用于存储摘要信息。 摘要对象内部使用的属性,它是 SummaryObject 类的一个实例,用于存储摘要信息。

例如,如果将 label 属性设为“Summary”,则计算的摘要将置于摘要对象中名为“Summary”的属性中。包含摘要数据的 SummaryObject 实例的属性将按以下方式显示:

{Summary:1000}
mx.collections.SummaryObjectmx.collections.SummaryRow.summaryObjectFunctionsummaryFunction
operation 应对子项执行的函数。SUMSUM 应对子项执行的函数。可以为数值字段指定下列值之一:SUMMINMAXAVGCOUNTsummaryFunction 指定回调函数以计算自定义数据摘要。 指定回调函数以计算自定义数据摘要。

可将此属性与 SummaryRow.summaryObjectFunction 属性一起使用,后者定义用于收集供在 AdvancedDataGrid 控件中显示的摘要数据的 SummaryObject 类的实例。

该函数签名应如下所示:

      function mySummaryFunction(iterator:IViewCursor, dataField:String, operation:String):Object

SUMMINMAXAVGCOUNT 的内置摘要函数都会返回一个包含摘要数据的 Number。

mx.collections.SummaryObjectmx.collections.SummaryRow.summaryObjectFunction
GroupingCollection2 使用 GroupingCollection2 类,您可以在平面数据中创建要显示在 AdvancedDataGrid 控件中的分组数据。<mx.GroupingCollection2> inherits all the tag attributes of its superclass, and defines the following tag attributes:

  <mx:GroupingCollection2
  Properties 
    grouping="No default"
    source="No default"
    summaries="No default"
  />
  
]]>
mx.collections:IGroupingCollection2mx.collections:HierarchicalData 使用 GroupingCollection2 类,您可以在平面数据中创建要显示在 AdvancedDataGrid 控件中的分组数据。在平面数据中创建 GroupingCollection2 实例时,可以指定用于创建层次结构的数据的一个或多个字段。

注意:在先前版本的 Flex 中,您将 GroupingCollection 类与 AdvancedDataGrid 控件一起使用。GroupingCollection2 类是 Flex 4 中的新类,提供比 GroupingCollection 更好的性能。

要使用分组数据填充 AdvancedDataGrid 控件,可以在平面数据中创建 GroupingCollection2 类的一个实例,然后将该 GroupingCollection2 实例传递给 AdvancedDataGrid 控件的数据提供程序。要指定平面数据的分组字段,可将一个 Grouping 实例传递给 GroupingCollection2.grouping 属性。Grouping 实例包含 GroupingField 实例的 Array,每个分组字段一个。

以下示例使用 GroupingCollection2 类定义两个分组字段:Region 和 Territory。

  <mx:AdvancedDataGrid id="myADG"    
    <mx:dataProvider> 
      <mx:GroupingCollection2 id="gc" source="{dpFlat}"> 
        <mx:grouping> 
          <mx:Grouping> 
            <mx:GroupingField name="Region"/> 
            <mx:GroupingField name="Territory"/> 
          </mx:Grouping> 
        </mx:grouping> 
      </mx:GroupingCollection2> 
    </mx:dataProvider>  
     
    <mx:columns> 
      <mx:AdvancedDataGridColumn dataField="Region"/> 
      <mx:AdvancedDataGridColumn dataField="Territory"/> 
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"/> 
      <mx:AdvancedDataGridColumn dataField="Actual"/> 
      <mx:AdvancedDataGridColumn dataField="Estimate"/> 
    </mx:columns> 
  </mx:AdvancedDataGrid>
  
mx.controls.AdvancedDataGridmx.collections.Groupingmx.collections.GroupingFieldGroupingCollection2 构造函数。 构造函数。 cancelRefresh 如果异步执行刷新,请取消刷新操作并停止构建组。 如果异步执行刷新,请取消刷新操作并停止构建组。与异步刷新相对应,此方法仅取消由调用带有 asynch 参数 truerefresh() 方法启动的刷新。 getParent 返回节点的父项。包含作为子项的节点的父节点,如果为顶级节点,则返回 null;如果无法确定父节点,则返回 undefinednode定义该节点的 Object。 返回节点的父项。顶级节点的父项为 nullgetRoot 如果已设置分组属性,则返回 super.source;如果未设置,则返回引用 super.source 的 ICollectionView 实例。要返回的对象。 如果已设置 grouping 属性,则返回 super.source;如果未设置,则返回引用 super.source 的 ICollectionView 实例。 refresh 对该集合应用分组。如果 refresh() 方法已完成,则为 true;如果刷新尚未完成,则为 false,这样可以表示这些项目仍未处理。 asyncfalse如果为 true,则定义为异步刷新。默认情况下,为 false,指示同步刷新。 dispatchCollectionEventsfalse若为 true,则当形成组时分派事件。为了使性能更佳,可将其设置为 false。若为 true,则事件是作为组分派的,且会同步计算摘要以更新控件。注意:如果 asynctrue,则会始终将 dispatchCollectionEvents 设置为 true。默认情况下,它为 false,指示将不会分派任何事件。 对该集合应用分组。该集合不会自动检测对组进行的更改,因此设置 groupingsourcesummaries 属性后,必须调用 refresh() 方法以更新该集合。修改集合的 GroupingField(如通过更改 caseInsensitivecompareFunctiongroupingFunction 属性)时您也调用 refresh() 方法。

可以同步或异步应用 refresh() 方法。

同步调用 refresh() 时,在该方法返回之前,会一起更新所有组和摘要。这意味着您的应用程序在该调用期间无法执行其它处理操作。客户端应等待 kind 属性值设置为 CollectionEventKind.REFRESH 的 CollectionEvent 事件,以确保完成 refresh() 方法。

在异步刷新中,会单独更新所有组和摘要。refresh() 方法在更新组和摘要之前返回,这样您的应用程序可以继续执行。此外,控件是在刷新过程中更新的,这样用户可以继续与其交互。

单独更新组和摘要(而不是一次全部更新)的开销使异步刷新比同步刷新花费的时间更长。但是,对于大型数据集,您的应用程序会在刷新过程中继续操作。

summaries 定义任意根级别数据摘要的 SummaryRow 实例数组。 定义任意根级别数据摘要的 SummaryRow 实例数组。指定一个或多个 SummaryRow 实例以定义数据摘要,如以下示例所示:
      <mx:AdvancedDataGrid id="myADG" 
         width="100%" height="100%" 
         initialize="gc.refresh();">        
         <mx:dataProvider>
             <mx:GroupingCollection2 id="gc" source="{dpFlat}">
                 <mx:summaries>
                     <mx:SummaryRow summaryPlacement="last">
                         <mx:fields>
                             <mx:SummaryField2 dataField="Actual" 
                                 label="Min Actual" summaryOperation="MIN"/>
                             <mx:SummaryField2 dataField="Actual" 
                                 label="Max Actual" summaryOperation="MAX"/>
                         </mx:fields>
                       </mx:SummaryRow>
                     </mx:summaries>
                 <mx:Grouping>
                     <mx:GroupingField name="Region"/>
                     <mx:GroupingField name="Territory"/>
                 </mx:Grouping>
             </mx:GroupingCollection2>
         </mx:dataProvider>        
         
         <mx:columns>
             <mx:AdvancedDataGridColumn dataField="Region"/>
             <mx:AdvancedDataGridColumn dataField="Territory_Rep"
                 headerText="Territory Rep"/>
             <mx:AdvancedDataGridColumn dataField="Actual"/>
             <mx:AdvancedDataGridColumn dataField="Estimate"/>
             <mx:AdvancedDataGridColumn dataField="Min Actual"/>
             <mx:AdvancedDataGridColumn dataField="Max Actual"/>
         </mx:columns>
      </mx:AdvancedDataGrid>
mx.collections.SummaryRowmx.collections.SummaryField2
timer 与异步刷新操作相关联的计时器。 与异步刷新操作相关联的计时器。您可以使用它来更改计时间隔、暂停刷新或执行其他操作。Timer 实例的 delay 属性的默认值为 1,对应于 1 毫秒。 grouping 指定应用于源数据的 Grouping 实例。mx.collections:Grouping 指定应用于源数据的 Grouping 实例。设置 grouping 属性不会自动刷新视图,因此您必须在设置此属性后调用 refresh() 方法。 mx.collections.GroupingCollection2.refresh()source 包含要分组的平面数据的源集合。 包含要分组的平面数据的源集合。如果源不是一个集合,它将自动封装在一个集合中。
IHierarchicalData IHierarchicalData 接口定义用于将分层结构数据表示为 Flex 组件的数据提供程序的接口。flash.events:IEventDispatcher IHierarchicalData 接口定义用于将分层结构数据表示为 Flex 组件的数据提供程序的接口。层次结构数据指的是父数据项和子数据项结构中的数据。 mx.collections.ICollectionViewcanHaveChildren 如果该节点可以包含子项,则返回 true。如果该节点可以包含子项,则返回 truenode定义该节点的 Object。 如果该节点可以包含子项,则返回 true

节点无需包含该方法的子节点即可返回 true。此方法对于确定是否可将其他节点作为子项追加到指定节点很有用。

getChildren 返回表示节点子项的 Object。包含子节点的 Object。 node定义该节点的 Object。如果为 null,则返回顶级节点的集合。 返回表示节点子项的 Object。 getData 返回节点中的数据。请求的数据。 node从中获取数据的节点 Object。 返回节点中的数据。 getRoot 返回根数据项。包含根数据项的 Object。 返回根数据项。 hasChildren 如果该节点包含子项,则返回 true。如果该节点具有子项,则返回 truenode定义该节点的 Object。 如果该节点包含子项,则返回 true
GroupingField GroupingField 类提供用于对由 AdvancedDataGrid 控件显示的平面数据进行分组的各数据字段。<mx.GroupingField> inherits all the tag attributes of its superclass, and defines the following tag attributes:

  <mx:GroupingField
  Properties 
    caseInsensitive="false|true"
    compareFunction="No default"
    descending="false|true"
    groupingFunction="No default"
    groupingObjectFunction="No default"
    name="null"
    numeric="false|true"
    summaries="No default"
  />
  
]]>
Object GroupingField 类提供用于对由 AdvancedDataGrid 控件显示的平面数据进行分组的各数据字段。

要使用分组数据填充 AdvancedDataGrid 控件,可以在平面数据中创建 GroupingCollection 类的一个实例,然后将该 GroupingCollection 实例传递给 AdvancedDataGrid 控件的数据提供程序。要指定平面数据的分组字段,可将一个 Grouping 实例传递给 GroupingCollection.grouping 属性。Grouping 实例包含 GroupingField 实例的 Array,每个分组字段一个。

以下示例使用 Grouping 类定义两个分组字段:Region 和 Territory。

  <mx:AdvancedDataGrid id="myADG"    
    <mx:dataProvider> 
      <mx:GroupingCollection id="gc" source="{dpFlat}"> 
        <mx:grouping> 
          <mx:Grouping> 
            <mx:GroupingField name="Region"/> 
            <mx:GroupingField name="Territory"/> 
          </mx:Grouping> 
        </mx:grouping> 
      </mx:GroupingCollection> 
    </mx:dataProvider>  
     
    <mx:columns> 
      <mx:AdvancedDataGridColumn dataField="Region"/> 
      <mx:AdvancedDataGridColumn dataField="Territory"/> 
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"/> 
      <mx:AdvancedDataGridColumn dataField="Actual"/> 
      <mx:AdvancedDataGridColumn dataField="Estimate"/> 
    </mx:columns> 
  </mx:AdvancedDataGrid>
  
mx.controls.AdvancedDataGridmx.collections.GroupingCollectionmx.collections.GroupingGroupingField 构造函数。namenull此字段用来进行比较的属性的名称。如果该对象为简单类型,则传递 nullcaseInsensitivefalse在对字符串进行排序时,指示比较运算符是否忽略值的大小写。 descendingfalse指示比较运算符是否按降序排列项目。 numericfalse指示比较运算符是否按编号而不按字母顺序比较排序项目。 构造函数。 groupingFunction 确定此组的标签的函数。 确定此组的标签的函数。默认情况下,组显示数据中字段的文本,该文本与 name 属性指定的字段匹配。但是,有时您希望基于数据中的多个字段对项目进行分组,或基于不是简单 String 字段的内容进行分组。在这种情况下,可使用 groupingFunction 属性指定回调函数。

回调函数可能会将数字格式的月转换为字符串格式的月,或基于某些条件而不是字段的实际值将多个项目分为一个组。

对于 GroupField,方法签名具有以下格式:

groupingFunction(item:Object, field:GroupField):String

其中 item 包含数据项目对象,field 包含 GroupField 对象。

例如,返回第一个字符作为组名的 groupingFunction 可以写作 -
      private function groupFunc(item:Object, field:GroupingField):String
      {
          return item[field.name].toString().substr(0, 1);
      }
      
groupingObjectFunction 在每个组节点上运行以确定分组对象的回调函数。 在每个组节点上运行以确定分组对象的回调函数。默认情况下,将为组节点创建新 Object。

您可以提供 groupingObjectFunction,它可以为组节点提供合适的对象。

方法签名为:

      myGroupObjectFunction(label:String):Object

其中 label 包含将为该组节点显示的值。该函数返回可用于组节点的对象。

例如,groupingObjectFunction 返回包含“name”属性且该属性值为“Bob”的 Object 可写作 -
      private function groupObjFunction(label:String):Object
      {
          var obj:Object = {};
          obj.name = "Bob";
     
          return obj;
      }
      
summaries 用于定义组级别摘要的 SummaryRow 实例的数组。 用于定义组级别摘要的 SummaryRow 实例的数组。指定一个或多个 SummaryRow 实例以定义数据摘要,如以下示例所示:
      <mx:AdvancedDataGrid id="myADG" 
         width="100%" height="100%" 
         initialize="gc.refresh();">        
         <mx:dataProvider>
             <mx:GroupingCollection id="gc" source="{dpFlat}">
                 <mx:Grouping>
                     <mx:GroupingField name="Region">
                       <mx:summaries>
                           <mx:SummaryRow summaryPlacement="group">
                             <mx:fields>
                                 <mx:SummaryField dataField="Actual" 
                                     label="Min Actual" operation="MIN"/>
                                 <mx:SummaryField dataField="Actual" 
                                     label="Max Actual" operation="MAX"/>
                             </mx:fields>
                           </mx:SummaryRow>
                         </mx:summaries>
                     </mx:GroupingField>
                 </mx:Grouping>
             </mx:GroupingCollection>
         </mx:dataProvider>        
         
         <mx:columns>
             <mx:AdvancedDataGridColumn dataField="Region"/>
             <mx:AdvancedDataGridColumn dataField="Territory_Rep"
                 headerText="Territory Rep"/>
             <mx:AdvancedDataGridColumn dataField="Actual"/>
             <mx:AdvancedDataGridColumn dataField="Estimate"/>
             <mx:AdvancedDataGridColumn dataField="Min Actual"/>
             <mx:AdvancedDataGridColumn dataField="Max Actual"/>
         </mx:columns>
      </mx:AdvancedDataGrid>  
      
mx.collections.SummaryRowmx.collections.SummaryField
caseInsensitive 如果此字段的排序不区分大小写,则设置为 true。false 如果此字段的排序不区分大小写,则设置为 truecompareFunction 用于在对关联集合的项目进行排序时比较两个项目的函数。 用于在对关联集合的项目进行排序时比较两个项目的函数。如果指定了 Grouping 对象中的 compareFunction 属性,则 Flex 会忽略 GroupingField 对象的所有 compareFunction 属性。

该比较函数必须具有以下签名:

function myCompare(a:Object, b:Object):int

此函数必须返回以下值:

  • -1,如果在已排序序列中 a 应显示在 b 之前。
  • 0,如果 a 等于 b
  • 1,如果在已排序序列中 a 应显示在 b 之后。

默认值为具有以下特征的内部比较函数:可以通过区分大小写或不区分大小写的字符串比较按升序或降序执行字符串、数字或日期比较。仅在需要自定义比较算法时指定您自己的函数。这种情况通常仅当在显示中使用计算的字段时出现。

descending 如果此字段的排序应为降序排序,则设置为 true。false 如果此字段的排序应为降序排序,则设置为 truename 要排序的字段的名称。null 要排序的字段的名称。 numeric 指定当要进行排序的字段包含数值 (Number/int/uint) 或数值的字符串表示形式时,比较运算符是否使用数值比较。false 指定当要进行排序的字段包含数值 (Number/int/uint) 或数值的字符串表示形式时,比较运算符是否使用数值比较。如果此属性为 false,将使用字符串比较对具有数字字符串表示形式的字段排序,因此 100 应在 99 之前,因为字符串值“1”比字符串值“9”小。
Grouping Grouping 类定义用于对数据进行分组的 AdvancedDataGrid 控件的数据提供程序中的字段。<mx.Grouping> tag defines the following tag attributes:

  <mx:Grouping
  Properties 
    compareFunction="No default"
    fields="null"
    groupingObjectFunction="No default"
    label="GroupLabel"
  />
  
]]>
Object Grouping 类定义用于对数据进行分组的 AdvancedDataGrid 控件的数据提供程序中的字段。当 AdvancedDataGrid 控件的输入数据具有平面结构时,可使用此类创建组。

要使用分组数据填充 AdvancedDataGrid 控件,可以在平面数据中创建 GroupingCollection 类的一个实例,然后将该 GroupingCollection 实例传递给 AdvancedDataGrid 控件的数据提供程序。要指定平面数据的分组字段,可将一个 Grouping 实例传递给 GroupingCollection.grouping 属性。Grouping 实例包含 GroupingField 实例的 Array,每个分组字段一个。

以下示例使用 Grouping 类定义两个分组字段:Region 和 Territory。

  <mx:AdvancedDataGrid id="myADG"    
    <mx:dataProvider> 
      <mx:GroupingCollection id="gc" source="{dpFlat}"> 
        <mx:grouping> 
          <mx:Grouping> 
            <mx:GroupingField name="Region"/> 
            <mx:GroupingField name="Territory"/> 
          </mx:Grouping> 
        </mx:grouping> 
      </mx:GroupingCollection> 
    </mx:dataProvider>  
     
    <mx:columns> 
      <mx:AdvancedDataGridColumn dataField="Region"/> 
      <mx:AdvancedDataGridColumn dataField="Territory"/> 
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"/> 
      <mx:AdvancedDataGridColumn dataField="Actual"/> 
      <mx:AdvancedDataGridColumn dataField="Estimate"/> 
    </mx:columns> 
  </mx:AdvancedDataGrid>
  
mx.controls.AdvancedDataGridmx.collections.GroupingCollectionmx.collections.GroupingFieldGrouping 构造函数。 构造函数。 groupingObjectFunction 在每个组节点上运行以确定分组对象的回调函数。 在每个组节点上运行以确定分组对象的回调函数。默认情况下,将为组节点创建新 Object。

您可以提供 groupingObjectFunction,它可以为组节点提供合适的对象。

方法签名为:

      myGroupObjectFunction(label:String):Object

其中 label 包含将为该组节点显示的值。该函数返回将用于组节点的 Object。

例如,groupingObjectFunction 返回包含“name”属性且该属性值为“Bob”的 Object 可写作 -
      private function groupObjFunction(label:String):Object
      {
          var obj:Object = {};
          obj.name = "Bob";
     
          return obj;
      }
      
label 添加到平面数据以创建层次结构的字段的名称。GroupLabelGroupLabel 添加到平面数据以创建层次结构的字段的名称。每个组中顶部节点(表示组字段的节点)的值由此属性提供。使用此属性指定一个不同的名称。 compareFunction 用于在排序时比较项目的方法。 用于在排序时比较项目的方法。如果指定了此属性,Flex 会忽略在此类中使用的 SortField 对象中指定的所有 compareFunction 属性。

该比较函数必须具有以下签名:

         function [name](a:Object, b:Object, fields:Array=null):int

此函数必须返回以下值:

  • -1,如果在已排序序列中 a 应显示在 b 之前。
  • 0,如果 a 等于 b
  • 1,如果在已排序序列中 a 应显示在 b 之后。

要返回内部比较函数,请将此值设置为 null

fields Array 会指定要比较的对象字段。通常,算法将一直比较属性,直到用尽字段列表或能返回非零值。例如:

        function myCompare(a:Object, b:Object, fields:Array=null):int
        {
            var result:int = 0;
            var i:int = 0;
            var propList:Array = fields ? fields : internalPropList;
            var len:int = propList.length;
            var propName:String;
            while (result == 0 && (i < len))
            {
                propName = propList[i];
                result = compareValues(a[propName], b[propName]);
                i++;
            }
            return result;
        }
     
        function compareValues(a:Object, b:Object):int
        {
            if (a == null && b == null)
                return 0;
     
            if (a == null)
              return 1;
     
            if (b == null)
               return -1;
     
            if (a < b)
                return -1;
     
            if (a > b)
                return 1;
     
            return 0;
        }

默认值为具有以下特征的内部比较函数:可以通过区分大小写或不区分大小写的字符串比较按升序或降序执行字符串、数字或日期比较。仅在需要自定义比较算法时指定您自己的函数。这种情况通常仅当在显示中使用计算的字段时出现。

或者,您可以使用 SortField 类的 compare 属性为每个排序字段指定单独的比较函数。这样,您可以对某些字段使用默认比较,而对其他字段使用自定义比较。

fields 指定用于对数据进行分组的字段的 GroupingField 对象 Array。null 指定用于对数据进行分组的字段的 GroupingField 对象 Array。在进行排序时,Array 中 GroupingField 对象的顺序确定字段的优先级顺序。 GroupingField
SummaryRow SummaryRow 类代表 AdvancedDataGrid 的摘要行。<mx.SummaryRow> tag defines the following tag attributes:

  <mx:SummaryRow
  Properties 
    fields="No default"
    summaryObjectFunction="No default"
    summaryPlacement="last"
  />
  
]]>
Object SummaryRow 类代表 AdvancedDataGrid 的摘要行。可使用 GroupingField 或 GroupingCollection 类的 summaries 属性创建有关数据组的摘要数据。在 AdvancedDataGrid 控件的现有行中显示摘要数据,或者在单独的行中显示。

GroupingField 或 GroupingCollection 类的 summaries 属性采用 SummaryRow 类的实例。然后,您可以使用 SummaryRow 类的 fields 属性指定一个或多个 SummaryField/SummaryField2 实例的 Array,这些实例定义用于创建摘要的数据字段。使用 GroupingCollection2 时需要使用 SummaryField2

以下示例基于 AdvancedDataGrid 控件的数据提供程序的两个字段创建摘要行:

  <mx:AdvancedDataGrid id="myADG" 
    initialize="gc.refresh();"> 
    <mx:dataProvider>
      <mx:GroupingCollection id="gc" source="{dpFlat}">
        <mx:Grouping>
          <mx:GroupingField name="Region">
            <mx:summaries>
              <mx:SummaryRow summaryPlacement="group">
                <mx:fields>
                  <mx:SummaryField dataField="Actual" 
                    label="Min Actual" operation="MIN"/>
                  <mx:SummaryField dataField="Actual" 
                    label="Max Actual" operation="MAX"/>
                </mx:fields>
              </mx:SummaryRow>
            </mx:summaries>
          </mx:GroupingField>
          <mx:GroupingField name="Territory">
            <mx:summaries>
              <mx:SummaryRow summaryPlacement="group">
                <mx:fields>
                  <mx:SummaryField dataField="Actual" 
                    label="Min Actual" operation="MIN"/>
                  <mx:SummaryField dataField="Actual" 
                    label="Max Actual" operation="MAX"/>
                </mx:fields>
              </mx:SummaryRow>
            </mx:summaries>
          </mx:GroupingField>
        </mx:Grouping>
      </mx:GroupingCollection>
    </mx:dataProvider> 
 
    <mx:columns>
      <mx:AdvancedDataGridColumn dataField="Region"/>
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"
        headerText="Territory Rep"/>
      <mx:AdvancedDataGridColumn dataField="Actual"/>
      <mx:AdvancedDataGridColumn dataField="Estimate"/>
      <mx:AdvancedDataGridColumn dataField="Min Actual"/>
      <mx:AdvancedDataGridColumn dataField="Max Actual"/>
    </mx:columns>
  </mx:AdvancedDataGrid>
  
mx.controls.AdvancedDataGridmx.collections.GroupingFieldmx.collections.SummaryFieldmx.collections.SummaryField2SummaryRow 构造函数。 构造函数。 fields 定义用于创建摘要的数据字段特性的 SummaryField/SummaryField2 实例的数组。 定义用于创建摘要的数据字段特性的 SummaryField/SummaryField2 实例的数组。 mx.collections.SummaryFieldmx.collections.SummaryField2summaryObjectFunction 指定定义摘要对象的回调函数,它是 SummaryObject 类的一个实例。 指定定义摘要对象的回调函数,它是 SummaryObject 类的一个实例。SummaryObject 实例收集供在 AdvancedDataGrid 控件中显示的摘要数据。AdvancedDataGrid 控件将 SummaryObject 实例添加到数据提供程序以在控件中显示摘要数据。因此,在 SummaryObject 实例内定义要显示的属性。

可将此属性与 SummaryField.summaryFunction 属性一起使用,后者可定义回调函数以执行摘要计算。

GroupingCollection 类可将名为 children 属性添加到 Object。

该回调函数必须具有以下签名:

function mySumObjFunc():SummaryObject {}
mx.collections.SummaryObjectmx.collections.SummaryField.summaryFunction
summaryPlacement 指定摘要行在 AdvancedDataGrid 控件中的显示位置。last 指定摘要行在 AdvancedDataGrid 控件中的显示位置。可能的值包括:
  • "first" - 创建摘要行作为组中的第一行。
  • "last" — 创建摘要行作为组中的最后一行。
  • "group" - 将摘要数据添加到与组对应的行。

可以指定多个值,用空格分隔。例如,"last group" 值显示位于组级别中子项最后一行的相同摘要行。

HierarchicalCollectionViewCursor HierarchicalCollectionViewCursor 类为标准集合的层次结构视图定义光标。mx.collections:IHierarchicalCollectionViewCursorflash.events:EventDispatcher HierarchicalCollectionViewCursor 类为标准集合的层次结构视图定义光标。此光标跨越的集合不需要有层次结构,它可以是平面的。此类委托 IHierarchicalData 来获得有关它穿过的数据的树结构的信息。 HierarchicalCollectionViewHierarchicalCollectionViewCursor 构造函数。collectionmx.collections:HierarchicalCollectionView此光标引用的 HierarchicalCollectionView 实例。 model源数据集合。 hierarchicalDatamx.collections:IHierarchicalData用于创建 HierarchicalCollectionView 实例的数据。 构造函数。 findAny values findFirst values findLast values insert item moveNext movePrevious remove seek bookmarkoffset0prefetch0 afterLast beforeFirst bookmark currentDepth 包含位于此光标引用的源集合中的位置处的节点的深度。 包含位于此光标引用的源集合中的位置处的节点的深度。如果该光标超出了集合末尾,则此属性包含 0。 current view DefaultSummaryCalculator DefaultSummaryCalculator 类为 SUM、MIN、MAX、AVG 和 COUNT 运算提供摘要计算逻辑。mx.collections:ISummaryCalculatorObject DefaultSummaryCalculator 类为 SUMMINMAXAVGCOUNT 运算提供摘要计算逻辑。 mx.collections.SummaryField2calculateSummaryOfSummary 需要在已经计算的摘要中添加新摘要值时,Flex 会调用此方法。oldValue通过对 summaryOfSummaryCalculationBegin() 方法的调用返回的对象,或通过之前对 calculateSummaryOfSummary() 方法的调用计算的对象。此方法会修改此对象,但不会返回值。 newValue针对前一个聚合调用 returnSummary() 方法而返回的对象。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 需要在已经计算的摘要中添加新摘要值时,Flex 会调用此方法。 calculateSummary 当在摘要值中添加新值时,Flex 会调用此方法。data通过对 summaryCalculationBegin() 方法的调用返回的对象,或者通过之前对 calculateSummary() 方法的调用计算的对象。使用此对象保存执行计算所需的信息。此方法会修改此对象,但不会返回值。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 rowData代表正在分析的行数据的对象。 当在摘要值中添加新值时,Flex 会调用此方法。 returnSummaryOfSummary Flex 会调用此方法结束摘要计算。摘要值。 oldValue通过对 calculateSummaryOfSummary() 方法的调用返回的对象,用于存储摘要计算结果。此方法会修改此对象,但不会返回值。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 Flex 会调用此方法结束摘要计算。 returnSummary Flex 会调用此方法来结束摘要值的计算。摘要值。 data通过对 calculateSummary() 方法的调用返回的对象。使用此对象保存执行计算所需的信息。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 Flex 会调用此方法来结束摘要值的计算。 summaryCalculationBegin Flex 调用此方法来开始计算摘要值。已为摘要计算初始化的对象。使用此对象保存执行计算所需的信息。请将此对象传递给对 calculateSummary()returnSummary() 方法的后续调用。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 Flex 调用此方法来开始计算摘要值。 summaryOfSummaryCalculationBegin Flex 调用此方法来开始从摘要值中计算摘要。已为摘要计算初始化的对象。使用此对象保存执行计算所需的信息。请将此对象传递给对 calculateSummaryOfSummary()returnSummaryOfSummary() 方法的后续调用。 value针对前一个概要计算调用 calculateSummary() 方法而返回的对象。使用此对象保存执行计算所需的信息。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 Flex 调用此方法来开始从摘要值中计算摘要。计算平均值组的平均值是对摘要值进行摘要计算的示例。 HierarchicalData 层次结构数据指的是已在父数据项和子数据项结构中的数据。mx.collections:IHierarchicalDataflash.events:EventDispatcher 层次结构数据指的是已在父数据项和子数据项结构中的数据。HierarchicalData 类提供了访问和处理供在控件(如 AdvancedDataGrid 控件)中使用的数据的默认实现。要将 AdvancedDataGrid 控件配置为显示层次结构数据,请将 HierarchicalData 类的一个实例传递给 dataProvider 属性。此实现处理 E4X、XML 和 Object 节点的方式相似,但不尽相同。有关如何使用该方法访问各种节点中的值的详细信息,请参阅每个方法的描述。 mx.controls.AdvancedDataGridHierarchicalData 构造函数。valuenull用于填充 HierarchicalData 实例的数据。 构造函数。 canHaveChildren 如果该节点可以包含子项,则返回 true。如果该节点可以包含子项,则返回 truenode定义该节点的 Object。 如果该节点可以包含子项,则返回 true

节点无需包含该方法的子节点即可返回 true。此方法对于确定是否可将其他节点作为子项追加到指定节点很有用。

getChildren 返回表示节点子项的 Object。包含子节点的 Object。 node定义该节点的 Object。如果为 null,则返回顶级节点的集合。 返回表示节点子项的 Object。 getData 返回节点中的数据。请求的数据。 node从中获取数据的节点 Object。 返回节点中的数据。 getRoot 返回根数据项。包含根数据项的 Object。 返回根数据项。 hasChildren 如果该节点包含子项,则返回 true。如果该节点具有子项,则返回 truenode定义该节点的 Object。 如果该节点包含子项,则返回 truechildrenField 指示在数据项中检测子对象所用的字段名。 指示在数据项中检测子对象所用的字段名。默认情况下,将所有子节点视为 XML 数据的子项,并将 children 属性用于 Object 数据类型。这有助于适应使用自定义数据字段代表子项的数据格式。 source 源集合。 源集合。该集合应实现 IList 接口以利于进行添加和删除项目等操作。 mx.collections.IList
GroupingCollection 使用 GroupingCollection 类,您可以在平面数据中创建要显示在 AdvancedDataGrid 控件中的分组数据。<mx.GroupingCollection> inherits all the tag attributes of its superclass, and defines the following tag attributes:

  <mx:GroupingCollection
  Properties 
    grouping="No default"
    source="No default"
    summaries="No default"
  />
  

This Class has been deprecated and replaced by a new Class GroupingCollection2 which provide faster, improved performance and a new summary calculation mechanism. Class SummaryField has also been deprecated and replaced by a new Class SummaryField2. Properties operation and summaryFunction are not present in the Class SummaryField2. A new property summaryOperation is introduced in SummaryField2.

]]>
mx.collections:IGroupingCollectionmx.collections:HierarchicalData 使用 GroupingCollection 类,您可以在平面数据中创建要显示在 AdvancedDataGrid 控件中的分组数据。在平面数据中创建 GroupingCollection 实例时,可以指定用于创建层次结构的数据的一个或多个字段。

要使用分组数据填充 AdvancedDataGrid 控件,可以在平面数据中创建 GroupingCollection 类的一个实例,然后将该 GroupingCollection 实例传递给 AdvancedDataGrid 控件的数据提供程序。要指定平面数据的分组字段,可将一个 Grouping 实例传递给 GroupingCollection.grouping 属性。Grouping 实例包含 GroupingField 实例的 Array,每个分组字段一个。

以下示例使用 GroupingCollection 类定义两个分组字段:Region 和 Territory。

  <mx:AdvancedDataGrid id="myADG"    
    <mx:dataProvider> 
      <mx:GroupingCollection id="gc" source="{dpFlat}"> 
        <mx:grouping> 
          <mx:Grouping> 
            <mx:GroupingField name="Region"/> 
            <mx:GroupingField name="Territory"/> 
          </mx:Grouping> 
        </mx:grouping> 
      </mx:GroupingCollection> 
    </mx:dataProvider>  
     
    <mx:columns> 
      <mx:AdvancedDataGridColumn dataField="Region"/> 
      <mx:AdvancedDataGridColumn dataField="Territory"/> 
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"/> 
      <mx:AdvancedDataGridColumn dataField="Actual"/> 
      <mx:AdvancedDataGridColumn dataField="Estimate"/> 
    </mx:columns> 
  </mx:AdvancedDataGrid>
  
mx.controls.AdvancedDataGridmx.collections.Groupingmx.collections.GroupingFieldGroupingCollection 构造函数。 构造函数。 cancelRefresh 如果异步执行刷新,请取消刷新操作并停止构建组。 如果异步执行刷新,请取消刷新操作并停止构建组。与异步刷新相对应,此方法仅取消由调用带有 true 参数的 refresh() 方法启动的刷新。 getParent 返回节点的父项。包含作为子项的节点的父节点,如果为顶级节点,则返回 null;如果无法确定父节点,则返回 undefinednode定义该节点的 Object。 返回节点的父项。顶级节点的父项为 nullgetRoot 如果已设置分组属性,则返回 super.source;如果未设置,则返回引用 super.source 的 ICollectionView 实例。要返回的对象。 如果已设置 grouping 属性,则返回 super.source;如果未设置,则返回引用 super.source 的 ICollectionView 实例。 refresh 对该视图应用分组。如果 refresh() 方法已完成,则为 true;如果刷新尚未完成,则为 false,这样可以表示这些项目仍未处理。 asyncfalse如果为 true,则定义为异步刷新。默认情况下,为 false,指示同步刷新。 对该视图应用分组。IGroupingCollection 不会自动检测对组进行的更改,因此设置 group 属性后,必须调用 refresh() 方法更新该视图。

通过调用 refresh(true) 可异步应用 refresh() 方法。

如果同步调用 refresh(),客户端应等待 kind 属性值设置为 CollectionEventKind.REFRESH 的 CollectionEvent 事件,以确保完成 refresh() 方法。

summaries 定义任意根级别数据摘要的 SummaryRow 实例数组。 定义任意根级别数据摘要的 SummaryRow 实例数组。指定一个或多个 SummaryRow 实例以定义数据摘要,如以下示例所示:
      <mx:AdvancedDataGrid id="myADG" 
         width="100%" height="100%" 
         initialize="gc.refresh();">        
         <mx:dataProvider>
             <mx:GroupingCollection id="gc" source="{dpFlat}">
                 <mx:summaries>
                     <mx:SummaryRow summaryPlacement="last">
                         <mx:fields>
                             <mx:SummaryField dataField="Actual" 
                                 label="Min Actual" operation="MIN"/>
                             <mx:SummaryField dataField="Actual" 
                                 label="Max Actual" operation="MAX"/>
                         </mx:fields>
                       </mx:SummaryRow>
                     </mx:summaries>
                 <mx:Grouping>
                     <mx:GroupingField name="Region"/>
                     <mx:GroupingField name="Territory"/>
                 </mx:Grouping>
             </mx:GroupingCollection>
         </mx:dataProvider>        
         
         <mx:columns>
             <mx:AdvancedDataGridColumn dataField="Region"/>
             <mx:AdvancedDataGridColumn dataField="Territory_Rep"
                 headerText="Territory Rep"/>
             <mx:AdvancedDataGridColumn dataField="Actual"/>
             <mx:AdvancedDataGridColumn dataField="Estimate"/>
             <mx:AdvancedDataGridColumn dataField="Min Actual"/>
             <mx:AdvancedDataGridColumn dataField="Max Actual"/>
         </mx:columns>
      </mx:AdvancedDataGrid>
mx.collections.SummaryRowmx.collections.SummaryField
timer 与异步刷新操作相关联的计时器。 与异步刷新操作相关联的计时器。您可以使用它来更改计时间隔、暂停刷新或执行其他操作。Timer 实例的 delay 属性的默认值为 1,对应于 1 毫秒。 grouping 指定应用于源数据的 Grouping 实例。mx.collections:Grouping 指定应用于源数据的 Grouping 实例。设置 grouping 属性不会自动刷新视图,因此您必须在设置此属性后调用 refresh() 方法。 mx.collections.GroupingCollection.refresh()source 包含要分组的平面数据的源集合。 包含要分组的平面数据的源集合。如果源不是一个集合,它将自动封装在一个集合中。
ISummaryCalculator ISummaryCalculator 接口定义由自定义摘要计算器类实现的接口。 ISummaryCalculator 接口定义由自定义摘要计算器类实现的接口。可以将实现此接口的类的实例传递给 SummaryField2 类的 summaryOperation 属性。

在两个组中实现此接口的方法。第一组包含 summaryCalculationBegin()calculateSummary()returnSummary() 方法。使用这些方法可计算值的摘要。

第二组包含 summaryOfSummaryCalculationBegin()calculateSummaryOfSummary()returnSummaryOfSummary() 方法。使用这些方法计算概要值的概要。

mx.collections.SummaryField2calculateSummaryOfSummary 需要在已经计算的摘要中添加新摘要值时,Flex 会调用此方法。value通过对 summaryOfSummaryCalculationBegin() 方法的调用返回的对象,或通过之前对 calculateSummaryOfSummary() 方法的调用计算的对象。此方法会修改此对象,但不会返回值。 newValue针对前一个聚合调用 returnSummary() 方法而返回的对象。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 需要在已经计算的摘要中添加新摘要值时,Flex 会调用此方法。 calculateSummary 当在摘要值中添加新值时,Flex 会调用此方法。data通过对 summaryCalculationBegin() 方法的调用返回的对象,或者通过之前对 calculateSummary() 方法的调用计算的对象。使用此对象保存执行计算所需的信息。此方法会修改此对象,但不会返回值。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 rowData代表正在分析的行数据的对象。 当在摘要值中添加新值时,Flex 会调用此方法。 returnSummaryOfSummary Flex 会调用此方法结束摘要计算。摘要值。 value通过对 calculateSummaryOfSummary() 方法的调用返回的对象,用于存储摘要计算结果。此方法会修改此对象,但不会返回值。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 Flex 会调用此方法结束摘要计算。 returnSummary Flex 会调用此方法来结束摘要值的计算。摘要值。 data通过对 calculateSummary() 方法的调用返回的对象。使用此对象保存执行计算所需的信息。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 Flex 会调用此方法来结束摘要值的计算。 summaryCalculationBegin Flex 调用此方法来开始计算摘要值。已为摘要计算初始化的对象。使用此对象保存执行计算所需的信息。请将此对象传递给对 calculateSummary()returnSummary() 方法的后续调用。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 Flex 调用此方法来开始计算摘要值。 summaryOfSummaryCalculationBegin Flex 调用此方法来开始从摘要值中计算摘要。已为摘要计算初始化的对象。使用此对象保存执行计算所需的信息。请将此对象传递给对 calculateSummaryOfSummary()returnSummaryOfSummary() 方法的后续调用。 value针对前一个概要计算调用 calculateSummary() 方法而返回的对象。使用此对象保存执行计算所需的信息。 fieldmx.collections:SummaryField2需要为其计算摘要的 SummaryField2。 Flex 调用此方法来开始从摘要值中计算摘要。计算平均值组的平均值是对摘要值进行摘要计算的示例。
IGroupingCollection2 IGroupingCollection2 接口定义根据平面数据创建分组数据所需的接口。mx.collections:IHierarchicalData IGroupingCollection2 接口定义根据平面数据创建分组数据所需的接口。 mx.collections.GroupingCollection2mx.controls.AdvancedDataGridcancelRefresh 如果异步执行刷新,请取消刷新操作并停止构建组。 如果异步执行刷新,请取消刷新操作并停止构建组。与异步刷新相对应,此方法仅取消由调用带有 asynch 参数 truerefresh() 方法启动的刷新。 refresh 对该集合应用分组。如果 refresh() 方法已完成,则为 true;如果刷新尚未完成,则为 false,这样可以表示这些项目仍未处理。 asyncfalse如果为 true,则定义为异步刷新。默认情况下,为 false,指示同步刷新。 dispatchCollectionEventsfalse若为 true,则当形成组时分派事件。为了使性能更佳,可将其设置为 false。若为 true,则事件是作为组分派的,且会同步计算摘要以更新控件。注意:如果 asynctrue,则会始终将 dispatchCollectionEvents 设置为 true。默认情况下,它为 false,指示将不会分派任何事件。 对该集合应用分组。该集合不会自动检测对组进行的更改,因此设置 groupingsourcesummaries 属性后,必须调用 refresh() 方法以更新该集合。修改集合的 GroupingField(如通过更改 caseInsensitivecompareFunctiongroupingFunction 属性)时您也调用 refresh() 方法。

可以同步或异步应用 refresh() 方法。

同步调用 refresh() 时,在该方法返回之前,会一起更新所有组和摘要。这意味着您的应用程序在该调用期间无法执行其它处理操作。客户端应等待 kind 属性值设置为 CollectionEventKind.REFRESH 的 CollectionEvent 事件,以确保完成 refresh() 方法。

在异步刷新中,会单独更新所有组和摘要。refresh() 方法在更新组和摘要之前返回,这样您的应用程序可以继续执行。此外,控件是在刷新过程中更新的,这样用户可以继续与其交互。

单独更新组和摘要(而不是一次全部更新)的开销使异步刷新比同步刷新花费的时间更长。但是,对于大型数据集,您的应用程序会在刷新过程中继续操作。

grouping 应用于源数据的 Grouping 对象。mx.collections:Grouping 应用于源数据的 Grouping 对象。设置此属性不会自动刷新视图;因此,必须在设置此属性后调用 refresh() 方法。

注意:IGroupingCollection2 的 Flex 实现将先检索远程位置的所有项目,然后再执行分组。

HierarchicalCollectionView HierarchicalCollectionView 类提供标准集合的层次结构视图。<mx.HierarchicalCollectionView> inherits all the tag attributes of its superclass, and defines the following tag attributes:

  <mx:HierarchicalCollectionView
  Properties 
    showRoot="true|false"
    source="No default"
  />
  
]]>
mx.collections:IHierarchicalCollectionViewmx.utils:IXMLNotifiableflash.events:EventDispatcher HierarchicalCollectionView 类提供标准集合的层次结构视图。 HierarchicalCollectionView 构造函数。hierarchicalDatamx.collections:IHierarchicalDatanull包含层次结构数据的数据结构。 argOpenNodesnull用于定义显示为起始位置的节点的 Object。 构造函数。 addChildAt 将子节点添加到指定索引处的节点。如果成功添加子节点,则为 trueparent用于定义父节点的 Object。 newChild用于定义子节点的 Object。 index要在该处插入子节点的从零开始的索引。 将子节点添加到指定索引处的节点。此实现执行以下操作:
  • 如果 parent 为空或未定义,则在 source 指定的集合中的指定 index 处插入 child
  • 如果 parent 包含 children 字段或属性,则该方法会将 child 添加到父节点的 index 位置。在这种情况下,不需要使用 source
  • 如果 parent 不包含 children 字段或属性,则该方法会将 children 添加到 parent。然后,此方法将 child 添加到父节点的 index 位置。在这种情况下,不需要使用 source
  • 如果 index 值大于集合长度或父节点中的子节点数,则将对象添加为最后一个子节点。
addChild 为数据的节点添加子节点。如果成功添加节点,则为 trueparent用于定义父节点的 Object。 newChild用于定义新节点的 Object。 为数据的节点添加子节点。 closeNode 关闭要隐藏其子项的节点。node定义该节点的 Object。 关闭要隐藏其子项的节点。 contains 使用标准相等测试检查数据项目的集合。如果数据项目位于集合中,则为 true,否则为 falseitem用于定义要查找的节点的 Object。 使用标准相等测试检查数据项目的集合。 createCursor 返回此视图中有关项目的视图迭代器的新实例。IViewCursor 实例。 返回此视图中有关项目的视图迭代器的新实例。 mx.utils.IViewCursorgetChildren 返回子项的集合(如果存在)。包含子节点的 ICollectionView 实例。 node定义该节点的 Object。如果为 null,则返回顶级节点的集合。 返回子项的集合(如果存在)。 getNodeDepth 返回集合中节点的深度。节点的深度。 node定义该节点的 Object。 返回集合中节点的深度。 getParentItem 返回节点的父项。包含该节点的父节点;如果为顶级节点,则为 null;如果无法确定父节点,则为 undefinednode定义该节点的 Object。 返回节点的父项。顶级节点的父项为 nullopenNode 打开要显示其子项的节点。node定义该节点的 Object。 打开要显示其子项的节点。 refresh removeChildAt 从指定索引处的节点删除子节点。如果成功删除子节点,则返回 trueparent用于定义父节点的 Object。 index要删除的相对于父项的子节点的从零开始的索引。 从指定索引处的节点删除子节点。 removeChild 从父节点删除子节点。如果成功删除节点,则为 trueparent用于定义父节点的 Object;对于顶级节点,为 nullchild用于定义要删除的子节点的 Object。 从父节点删除子节点。 hasRoot 一种标志,如果为 true,表示当前数据提供程序具有根节点;例如,层次结构中的单个顶级节点。 一种标志,如果为 true,表示当前数据提供程序具有根节点;例如,层次结构中的单个顶级节点。XML 和 Object 就是具有根节点的数据类型,而 Lists 和 Arrays 不属于这种数据类型。 length 当前分析的集合的长度。 当前分析的集合的长度。 openNodes 包含数据的所有开型分枝节点的数据提供程序元素的对象 Array。 包含数据的所有开型分枝节点的数据提供程序元素的对象 Array。 showRoot 指定是否显示数据提供程序的根节点的布尔值标志。true 指定是否显示数据提供程序的根节点的布尔值标志。如果源数据具有根节点,并且此属性设置为 false,则该集合中将不包含根项目。该集合中将仅包含此根项目的后代。

此属性不影响没有根节点的源,如 List 和 Array 对象。

source IHierarchicalCollectionView 的源数据。mx.collections:IHierarchicalData IHierarchicalCollectionView 的源数据。
IGroupingCollection IGroupingCollection 接口定义根据平面数据创建分组数据所需的接口。mx.collections:IHierarchicalData IGroupingCollection 接口定义根据平面数据创建分组数据所需的接口。 mx.collections.GroupingCollectionmx.controls.AdvancedDataGridcancelRefresh 如果异步执行刷新,请取消刷新操作并停止构建组。 如果异步执行刷新,请取消刷新操作并停止构建组。与异步刷新相对应,此方法仅取消由调用带有 true 参数的 refresh() 方法启动的刷新。 refresh 对该视图应用分组。如果 refresh() 方法已完成,则为 true;如果刷新尚未完成,则为 false,这样可以表示这些项目仍未处理。 asyncfalse如果为 true,则定义为异步刷新。默认情况下,为 false,指示同步刷新。 对该视图应用分组。IGroupingCollection 不会自动检测对组进行的更改,因此设置 group 属性后,必须调用 refresh() 方法更新该视图。

通过调用 refresh(true) 可异步应用 refresh() 方法。

如果同步调用 refresh(),客户端应等待 kind 属性值设置为 CollectionEventKind.REFRESH 的 CollectionEvent 事件,以确保完成 refresh() 方法。

grouping 应用于源数据的 Grouping 对象。mx.collections:Grouping 应用于源数据的 Grouping 对象。设置此属性不会自动刷新视图;因此,必须在设置此属性后调用 refresh() 方法。

注意:IGroupingCollection 的 Flex 实现将先检索远程位置的所有项目,然后再执行分组。