尽管此类的属性是可写的,但应将其视为只读。它们由 AdvancedDataGrid 类进行初始化,并由项呈示器或项目编辑器读取。更改这些值可能导致意外结果。
可以通过创建自定义排序项呈示器来覆盖默认的排序项呈示器。虽然对排序项呈示器没有特殊要求,但是 Adobe 建议排序项呈示器调用
您可以通过分派
例如,如果每个数据行按以下方式显示:
row = {.., .., Q1: { y2005: 241, y2006:353}};
并且通过以下方式定义一个列组:
<mx:AdvancedDataGridColumnGroup dataField="Q1"> <mx:AdvancedDataGridColumn dataField="y2005"> <mx:AdvancedDataGridColumn dataField="y2006"> </mx:AdvancedDataGridColumnGroup>
与 y2005 相对应的列的函数定义方式如下:
function foo():String { return row["Q1"]["2005"]; }
此函数还可以处理以下情况:任何列或列组使用标签函数而非数据字段。
<mx.AdvancedDataGridcolumn>
tag to configure a column
of a AdvancedDataGrid control.
You specify the <mx.AdvancedDataGridcolumn>
tag as a child
of the columns
property in MXML.
The <mx.AdvancedDataGridcolumn>
tag inherits all of the
tag attributes of its superclass, and adds the following tag attributes:
<mx:AdvancedDataGridColumn Properties dataField="No default" dataTipField="No default" dataTipFunction="No default" editable="true|false" editorDataField="text" editorHeightOffset="0" editorUsesEnterKey="false|true" editorWidthOffset="0" editorXOffset="0" editorYOffset="0" formatter="null" headerRenderer="AdvancedDataGridHeaderRenderer" headerText="No default" headerWordWrap="undefined" imeMode="null" itemEditor="TextInput" itemRenderer="AdvancedDataGridItemRenderer" labelFunction="No default" minWidth="20" rendererIsEditor="false|true" resizable="true|false" showDataTips="false|true" sortable="true|false" sortCompareFunction="No default" sortDescending="false|true" styleFunction="No default" visible="true|false" width="100" wordWrap="false|true" Styles backgroundColor="0xFFFFFF" color="No default." disabledColor="0xAAB3B3" fontAntiAliasType="advanced" fontFamily="No default" fontGridFitType="pixel" fontSharpness="0" fontSize="No default" fontStyle="normal|italic" fontThickness="0" fontWeight="normal|bold" headerStyleName="No default" kerning="false|true" letterSpacing="0" paddingLeft="0" paddingRight="0" textAlign="right|center|left" textDecoration="none|underline" textIndent="0" />]]>
注意:
此方法供创建 AdvancedDataGridColumn 类的子类的开发人员使用。它不适用于应用程序开发人员。
默认值为 mx.controls.TextInput 控件。
此属性的值不一定是列标题中显示的 String。此属性只用于访问数据提供程序中的数据。有关详细信息,请参阅
默认情况下,该控件将在每个数据提供程序项目上查找名为
此函数必须采用一个 Object 参数,并返回一个 String。对于列的标题单元格,Object 参数属于类型 AdvancedDataGridColumn。对于表格单元格,Object 参数包含单元格的数据提供程序元素。
以下所示是实现该函数的一个示例。对于标题单元格,返回列名称。对于表格单元格,返回对象的名称属性:
private function tipFunc(value:Object):String { if (value is AdvancedDataGridColumn) return "Column Name"; // Use the 'name' property of the data provider element. return "Name: " + value["name"]; }
默认项呈示器为 AdvancedDataGridItemRenderer 类,用于将项目数据显示为文本。
默认值为空,在这种情况下,它将使用 AdvancedDataGrid 控件的
默认项呈示器为 AdvancedDataGridItemRenderer 类,用于将项目数据显示为文本。
对于 AdvancedDataGrid 控件,方法签名具有以下格式:
labelFunction(item:Object, column:AdvancedDataGridColumn):String
其中,
回调函数可能会连接数据中的 firstName 和 lastName 字段,或者对 Date 设置某些自定义格式,也可能将月的数字形式转换为字符串形式。
AdvancedDataGrid 控件使用此函数对数据提供程序集合的元素排序。回调函数的函数签名采用两个参数并具有以下格式:
mySortCompareFunction(obj1:Object, obj2:Object):int
函数应该基于对象比较结果返回值:
注意:
function myStyleFunction(data:Object, column:AdvancedDataGridColumn):Object
返回值应该是样式的属性具有所需值的对象。例如:
{ color:0xFF0000, fontWeight:"bold" }
通过创建自定义的项呈示器,您可以覆盖默认项呈示器。
当您使用组件作为项呈示器时,
默认情况下,自定义标题呈示器使用由 AdvancedDataGridSortItemRenderer 类定义的默认排序项呈示器。排序项呈示器可控制排序图标和排序序号的显示。通过使用
通过创建自定义标题呈示器,可以覆盖默认标题呈示器。对自定义标题呈示器的唯一要求是:它必须包含通过覆盖
您可以通过处理或分派
当您使用组件作为项呈示器时,
在自定义标题呈示器中必须实现此方法,以便正确进行排序。请注意,这暗示您既需要显示文本(标题呈示器可以通过任何方式显示文本;默认情况下,Flex 显示文本),又需要显示图标(默认的或自定义的排序项呈示器)。
请注意,排序项呈示器控制排序图标和排序顺序编号的显示。自定义标题呈示器必须包括显示排序项呈示器的代码,无论它是默认的还是自定义的排序项呈示器。
通过创建自定义的项呈示器,您可以覆盖默认项呈示器。
当您使用组件作为项呈示器时,
<mx:tagname headerHeight="depends on styles and header renderer" headerWordWrap="false|true" selectionMode="SINGLE_ROW" showHeaders="true|false" sortItemRenderer="null" styleFunction="null" />]]>
您必须将
所选单元格的相关信息将写入
function myStyleFunction(data:Object, column:AdvancedDataGridColumn):Object
其中,
返回值应是以样式作为属性的 Object。例如:
<mx:AdvancedDataGridRendererProvider>
tag
defines the following tag attributes:
<mx:AdvancedDataGridRendererProvider Properties column="Not defined" columnIndex="-1" columnSpan="1" dataField="No default" depth="All depths of the tree" renderer="null" rowSpan="1" /> ]]>
下例使用 AdvancedDataGridRendererProvider 类在 myComponents 子目录中配置了名为 EstimateRenderer.mxml 的自定义项呈示器。
<mx:AdvancedDataGrid> <mx:columns> <mx:AdvancedDataGridColumn dataField="Region"/> <mx:AdvancedDataGridColumn dataField="Territory_Rep" headerText="Territory Rep"/> <mx:AdvancedDataGridColumn dataField="Actual"/> <mx:AdvancedDataGridColumn dataField="Estimate"/> </mx:columns> <mx:rendererProviders> <mx:AdvancedDataGridRendererProvider columnIndex="3" columnSpan="1" renderer="myComponents.EstimateRenderer"/> </mx:rendererProviders> </mx:AdvancedDataGrid>
当前,在 AdvancedDataGrid 控件中未实现此属性。
<mx.AdvancedDataGridColumnGroup>
tag to configure a column
group of a AdvancedDataGrid control.
You specify the <mx.AdvancedDataGridColumnGroup>
tag as a child
of the groupedColumns
property in MXML.
The <mx.AdvancedDataGridcolumn>
tag defines the following tag attributes:
<mx:AdvancedDataGridColumn Properties children="No default" childrenDragEnabled="true|false" />]]>
下例使用 AdvancedDataGridColumnGroup 类定义了名为 Revenues 的列组,其中包含两列:Actual 和 Estimate。
<mx:AdvancedDataGrid id="myADG" dataProvider="{dpFlat}" width="100%" height="100%"> <mx:groupedColumns> <mx:AdvancedDataGridColumn dataField="Region"/> <mx:AdvancedDataGridColumn dataField="Territory"/> <mx:AdvancedDataGridColumn dataField="Territory_Rep" headerText="Territory Rep"/> <mx:AdvancedDataGridColumnGroup headerText="Revenues"> <mx:AdvancedDataGridColumn dataField="Actual"/> <mx:AdvancedDataGridColumn dataField="Estimate"/> </mx:AdvancedDataGridColumnGroup> </mx:groupedColumns> </mx:AdvancedDataGrid>
如果行数据包含套嵌的对象,则此方法非常有用。例如,行由数据提供程序中的下列数据定义:
row = { name:"Adobe", address : { street : "345 Park Avenue", city : "San Jose", state : "CA 95110", country : "USA" } }
您可以将“address”字段分配给 AdvancedDataGridColumnGroup 实例的
此方法与