このクラスのプロパティは書き込み可能ですが、読み取り専用と見なす必要があります。 これらは AdvancedDataGrid クラスによって初期化され、アイテムレンダラーまたはアイテムエディターによって読み取られます。 これらの値を変更すると、予期しない結果が生じる可能性があります。
カスタムソートアイテムレンダラーを作成することにより、デフォルトのソートアイテムレンダラーをオーバーライドできます。 ソートアイテムレンダラーには特別な要件はありませんが、ソート情報を取得するために
例えば、各データ行が以下のような場合に、
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 コントロールです。
このプロパティのこの値は、必ずしも列ヘッダーに表示されるストリングであるとは限りません。 このプロパティは、データプロバイダーのデータにアクセスする目的でのみ使用します。 詳細については、
デフォルトでは、各データプロバイダーアイテムで
関数は単一の Object パラメーターを受け取り、String を返す必要があります。列のヘッダーセルの場合、Object パラメーターのタイプは AdvancedDataGridColumn になります。表のセルの場合、Object パラメーターにセルのデータプロバイダーエレメントが含まれています。
次の例は、関数の実装例です。ヘッダーセルの場合は、"Column Name" が返されます。表のセルの場合は、Object の name プロパティが返されます。
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 クラスです。これはアイテムデータをテキストとして表示します。
デフォルト値は null です。この場合、AdvancedDataGrid コントロールの
デフォルトのアイテムレンダラーは AdvancedDataGridItemRenderer クラスです。これはアイテムデータをテキストとして表示します。
AdvancedDataGrid コントロールの場合、メソッドシグネチャの形式は次のようになります。
labelFunction(item:Object, column:AdvancedDataGridColumn):String
ここで、
コールバック関数を使用すると、データ内の firstName フィールドと lastName フィールドの結合、Date に対するカスタム書式の適用、数字で表された月からストリングへの変換などが可能です。
AdvancedDataGrid コントロールはこの関数を使用して、データプロバイダーのコレクションのエレメントをソートします。 コールバック関数の関数シグネチャは 2 つのパラメーターを受け取り、次のような形式に従う必要があります。
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
ここで、
戻り値は、プロパティとしてスタイルを持つオブジェクトにならなければなりません。 例えば、
<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 の 2 つの列を含めています。
<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" } }
この場合は、AdvancedDataGridColumnGroup インスタンスの
このメソッドは