`

AdvancedDatagrid分组、显示概要信息及问题

    博客分类:
  • Flex
阅读更多
<?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>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics