Obwohl die Eigenschaften dieser Klasse änderbar sind, sollten Sie sie unverändert beibehalten. Sie werden durch die AdvancedDataGrid-Klasse initialisiert und von einem Renderer oder Editor für Elemente gelesen. Eine Veränderung dieser Werte kann zu unerwarteten Ergebnissen führen.
Sie können den Standard-Sortierelementrenderer überschreiben, indem Sie einen benutzerdefinierten Sortierelementrenderer erstellen. Für den Sortierelementrenderer gelten keine besonderen Anforderungen, aber Adobe empfiehlt, vom Sortierelementrenderer die
Sie können selbst definieren, wann die Sortierung angestoßen wird, indem Sie das
Beispiel: Angenommen, jede Datenzeile erscheint wie folgt:
row = {.., .., Q1: { y2005: 241, y2006:353}};
Sie definieren eine Spaltengruppe wie folgt:
<mx:AdvancedDataGridColumnGroup dataField="Q1"> <mx:AdvancedDataGridColumn dataField="y2005"> <mx:AdvancedDataGridColumn dataField="y2006"> </mx:AdvancedDataGridColumnGroup>
Die Funktion für die Spalte, die y2005 entspricht, wird wie folgt definiert:
function foo():String { return row["Q1"]["2005"]; }
Die Funktion kann auch eingesetzt werden, wenn eine Spalte oder eine Spaltengruppe eine Beschriftungsfunktion anstelle eines Datenfelds verwendet.
<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" />]]>
Hinweise:
Diese Methode wird von Entwicklern verwendet, die Unterklassen der AdvancedDataGridColumn-Klasse erstellen. Sie ist nicht für die Verwendung durch Anwendungsentwickler vorgesehen.
Der Standardwert ist das mx.controls.TextInput-Steuerelement.
Dieser Wert dieser Eigenschaft ist nicht notwendigerweise der String, der in der Spaltenüberschrift angezeigt wird. Diese Eigenschaft wird nur verwendet, um auf die Daten im Datenprovider zuzugreifen. Weitere Informationen finden Sie unter der
Standardmäßig sucht das Steuerelement nach einer Eigenschaft namens
Die Funktion muss einen einzelnen Object-Parameter annehmen und einen String zurückgeben. Bei der Überschriftszelle einer Spalte ist der Objektparameter vom Typ AdvancedDataGridColumn. Bei Tabellenzellen enthält dieser Objektparameter das Datenproviderelement für die Zelle.
Nachstehend wird eine Beispielimplementierung der Funktion gezeigt: Für die Überschriftenzelle soll "Column Name" zurückgegeben werden. Für die Tabellenzelle soll die Name-Eigenschaft des Objekts zurückgegeben werden:
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"]; }
Der Standardelementrenderer ist die AdvancedDataGridItemRenderer-Klasse, die die Elementdaten als Text darstellt.
Der Standardwert ist „null“ und in diesem Fall wird der Wert der
Der Standardelementrenderer ist die AdvancedDataGridItemRenderer-Klasse, die die Elementdaten als Text darstellt.
Für das AdvancedDataGrid-Steuerelement hat die Methodensignatur folgende Form:
labelFunction(item:Object, column:AdvancedDataGridColumn):String
Dabei gilt:
Eine Rückruffunktion kann die Felder firstName und lastName in den Daten verketten, angepasste Formatierungen des Datums vornehmen oder eine Zahl konvertieren, um daraus den Namen des Monats zu bilden.
Das AdvancedDataGrid-Steuerelement verwendet diese Funktion, um die Elemente der Datenprovider-Sammlung zu sortieren. Die Funktionssignatur der Rückruffunktion übernimmt zwei Parameter und hat folgende Form:
mySortCompareFunction(obj1:Object, obj2:Object):int
Die Funktion muss einen Wert zurückgeben, der auf dem Vergleich der Objekte basiert:
Hinweis: Die Parameter
function myStyleFunction(data:Object, column:AdvancedDataGridColumn):Object
Der Rückgabewert muss ein Objekt sein, dessen Stile die Eigenschaften mit den erforderlichen Werten haben. Beispiel:
{ color:0xFF0000, fontWeight:"bold" }
Sie können den Standardelementrenderer überschreiben, indem Sie einen benutzerdefinierten Elementrenderer erstellen.
Wenn Sie eine Komponente als Elementrenderer verwenden, enthält die
Standardmäßig verwendet der benutzerdefinierte Spaltenüberschriftsrenderer den Standardsortierelementrenderer, der von der AdvancedDataGridSortItemRenderer-Klasse definiert wird. Der Sortierelementrenderer steuert die Anzeige des Sortiersymbols und die Sortierfolgennummer. Sie können einen benutzerdefinierten Sortierelementrenderer festlegen, indem Sie die
Sie können den Standard-Spaltenüberschriftsrenderer überschreiben, indem Sie einen benutzerdefinierten Spaltenüberschriftsrenderer erstellen. Die einzige Anforderung für einen benutzerdefinierten Spaltenüberschriftsrenderer besteht darin, dass er die Größe der
Sie können selbst definieren, wann die Sortierung angestoßen wird, indem Sie das
Wenn Sie eine Komponente als Elementrenderer verwenden, enthält die
Diese Methode muss in benutzerdefinierten Spaltenüberschriftsrenderern implementiert werden. Beachten Sie, dass dies implizit auch bedeutet, dass Sie sowohl den Text (der auf jede Art angezeigt werden kann, die vom benutzerdefinierten Spaltenüberschriftsrenderer bewirkt wird, standardmäßig Flex-Anzeigetext) als auch ein Symbol (standardmäßig oder benutzerdefinierter Sortierelementrenderer) anzeigen müssen.
Beachten Sie: Der Sortierelementrenderer steuert die Anzeige des Sortiersymbols und die Sortierfolgennummer. Ein benutzerdefinierter Spaltenüberschriftrenderer muss Programmcode enthalten, um den Sortierelementrenderer anzuzeigen, unabhängig davon, ob es sich um den standardmäßigen oder einen benutzerdefinierten Sortierelementrenderer handelt.
Sie können den Standardelementrenderer überschreiben, indem Sie einen benutzerdefinierten Elementrenderer erstellen.
Wenn Sie eine Komponente als Elementrenderer verwenden, enthält die
<mx:tagname headerHeight="depends on styles and header renderer" headerWordWrap="false|true" selectionMode="SINGLE_ROW" showHeaders="true|false" sortItemRenderer="null" styleFunction="null" />]]>
Sie müssen die
Informationen über die ausgewählten Zellen werden in die
function myStyleFunction(data:Object, column:AdvancedDataGridColumn):Object
Dabei gilt:
Der zurückgegebene Wert muss ein Objekt mit Stilen als Eigenschaften sein. Beispiel:
<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" /> ]]>
Im folgenden Beispiel wird die AdvancedDataGridRendererProvider-Klasse verwendet, um einen benutzerdefinierten Elementrenderer namens EstimateRenderer.mxml im Unterordner „myComponents“ zu konfigurieren.
<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>
Derzeit ist diese Eigenschaft im AdvancedDataGrid-Steuerelement nicht implementiert.
<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" />]]>
Das folgende Beispiel verwendet die AdvancedDataGridColumnGroup-Klasse, um eine Spaltengruppe namens Revenues zu definieren, die zwei Spalten enthält: Actual und 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>
Diese Methode ist nützlich, wenn die Daten für eine Zeile verschachtelte Objekte enthalten. Beispiel: Eine Zeile wird durch die folgenden Daten im Datenprovider definiert:
row = { name:"Adobe", address : { street : "345 Park Avenue", city : "San Jose", state : "CA 95110", country : "USA" } }
Sie weisen dann das „address“-Feld der
Diese Methode ähnelt der