<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="init(event)">
<fx:Declarations>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable]
private var collection:ArrayCollection;
protected function init(event:FlexEvent):void
{
this.collection = new ArrayCollection();
this.collection.addItem({name:'one',cost:3,city:'北京市'});
this.collection.addItem({name:'one',cost:4,city:'天津市'});
this.collection.addItem({name:'two',cost:1,city:'上海市'});
this.collection.addItem({name:'one',cost:12,city:'重庆市'});
this.collection.addItem({name:'one',cost:5,city:'河北'});
this.collection.addItem({name:'two',cost:8,city:'广州'});
}
]]>
</fx:Script>
<mx:AdvancedDataGrid sortExpertMode="true" creationComplete="mygroup.refresh()">
<mx:dataProvider>
<mx:GroupingCollection2 id="mygroup" source="{collection}" >
<mx:Grouping>
<!-- 分组字段 -->
<mx:GroupingField name="name">
<!--用于定义组级别摘要的 SummaryRow 实例的数组。指定一个或多个 SummaryRow 实例以定义数据摘要-->
<mx:summaries>
<!--
SummaryRow 类代表 AdvancedDataGrid 的摘要行。可使用 GroupingField 或 GroupingCollection 类的 summaries 属性创建有关数据组的摘要数据。在 AdvancedDataGrid 控件的现有行中显示摘要数据,或者在单独的行中显示。
GroupingField 或 GroupingCollection 类的 summaries 属性采用 SummaryRow 类的实例。然后,您可以使用 SummaryRow 类的 fields 属性指定一个或多个 SummaryField/SummaryField2 实例的 Array,这些实例定义用于创建摘要的数据字段。使用 GroupingCollection2 时需要使用 SummaryField2。
-->
<mx:SummaryRow summaryPlacement="last">
<mx:fields>
<!--
SummaryField2 类代表 SummaryRow 实例中的一个属性。每个 SummaryRow 实例都指定一个或多个用于创建数据摘要的 SummayField2 实例。
-->
<mx:SummaryField2 dataField="cost" label="summary" summaryOperation="SUM" />
</mx:fields>
</mx:SummaryRow>
<mx:SummaryRow summaryPlacement="last">
<mx:fields>
<!--
SummaryField2 类代表 SummaryRow 实例中的一个属性。每个 SummaryRow 实例都指定一个或多个用于创建数据摘要的 SummayField2 实例。
-->
<mx:SummaryField2 dataField="cost" label="summary1" summaryOperation="MIN" />
</mx:fields>
</mx:SummaryRow>
</mx:summaries>
</mx:GroupingField>
</mx:Grouping>
</mx:GroupingCollection2>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="name" />
<mx:AdvancedDataGridColumn dataField="cost" />
<mx:AdvancedDataGridColumn dataField="city" />
</mx:columns>
<mx:rendererProviders>
<!-- AdvancedDataGridRendererProvider 实例定义由 AdvancedDataGrid 控件使用的单个项呈示器的特征。使用 AdvancedDataGridRendererProvider 类的属性可配置 AdvancedDataGrid 控件中使用项呈示器的位置。 -->
<!-- filed 呈示器的数据提供程序中的数据字段。此属性是可选的。 -->
<!-- columnIndex 索引位置 columnSpan应跨的列数-->
<mx:AdvancedDataGridRendererProvider dataField="summary" columnIndex="1" columnSpan="2">
<mx:renderer>
<fx:Component>
<s:MXAdvancedDataGridItemRenderer >
<s:Label text="Total number of items : {data.summary}" verticalCenter="0"/>
</s:MXAdvancedDataGridItemRenderer>
</fx:Component>
</mx:renderer>
</mx:AdvancedDataGridRendererProvider>
<mx:AdvancedDataGridRendererProvider dataField="summary1" columnIndex="1" columnSpan="2">
<mx:renderer>
<fx:Component>
<s:MXAdvancedDataGridItemRenderer >
<s:Label text="Total number of items : {data.summary1}" verticalCenter="0"/>
</s:MXAdvancedDataGridItemRenderer>
</fx:Component>
</mx:renderer>
</mx:AdvancedDataGridRendererProvider>
</mx:rendererProviders>
</mx:AdvancedDataGrid>
<!--
AdvancedDataGridRendererProvider 中dataFiled在文档中表明该属性可选。删除之后会出现每一列都会有渲染器中的信息。
如果在数据源中添加summary属性也同样会出现上述问题(包含summery、summery1的数据所在的行中均会显示)
??????
-->
</s:Application>
AdvancedDatagrid分组、显示概要信息及问题
最新推荐文章于 2018-09-04 09:20:03 发布