<s:GridColumn>
tag inherits all of the tag
attributes of its superclass and adds the following tag attributes:
<s:GridColumn Properties dataField="null" dataTipField="null" dataTipFormatter="null" dataTipFunction="null" editable="true" formatter="null" headerRenderer="null" headerText="value of dataField" imeMode="null" itemEditor="null" itemRenderer="null" itemRendererFunction="null" labelFunction="null" maxWidth="NaN" minWidth="20" rendererIsEditable="false" resizeable="true" showDataTips="undefined" sortable="true" sortCompareFunction="null" sortDescending="false" visible="true" width="NaN" />]]>
Cette méthode utilise les valeurs
Si
Si
Si
item[dataField].toString()
Si l'outil de formatage a été spécifiée, cette méthode sa valeur est :
formatter.format(item[dataField])
Si la propriété
Si
La valeur de cette propriété n’est pas nécessairement la chaîne qui est affichée dans l’en-tête de colonne. Cette propriété est utilisée uniquement pour accéder aux données dans le fournisseur de données. Pour plus d’informations, voir la propriété
Si la colonne ou sa grille spécifie une propriété
Si cette colonne ou sa grille spécifie une valeur pour la propriété
Si l'élément
Par défaut, si
Par exemple, vous disposez d’un fournisseur de données contenant les champs lastName et firstName, mais vous souhaitez afficher les noms complets en tant qu’astuce de données. Vous pouvez spécifier une fonction pour la propriété
La signature de la fonction
dataTipFunction(item:Object, column:GridColumn):StringLe paramètre
Une fonction standard peut concaténer les propriétés firstName et lastName d’un élément ou personnaliser la mise en forme d’une propriété de valeur de date.
Si l'élément
L’éditeur d’élément par défaut est la classe DefaultGridItemEditor, qui vous permet de modifier un champ de texte simple. Vous pouvez créer des rendus d’élément personnalisés en créant une sous-classe de la classe GridItemEditor. Votre éditeur d’élément personnalisé peut écrire des données dans la rangée entière de la grille pour définir un éditeur plus complexe.
La fonction spécifiée pour la propriété
itemRendererFunction(item:Object, column:GridColumn):IFactory
Le paramètre
Vous trouverez ci-dessous un exemple de fonction de rendu d’élément :
function myItemRendererFunction(item:Object, column:GridColumn):IFactory { return (item is Array) ? myArrayItemRenderer : myItemRenderer; }
Le rendu d’élément par défaut est la classe AdvancedDataGridItemRenderer, qui affiche l’élément de données sous forme de texte. Vous pouvez créer des rendus d’élément personnalisés en créant une sous-classe de la classe GridItemRenderer. Votre rendu d’élément personnalisé peut accéder aux données de la rangée entière de la grille pour définir une représentation visuelle plus complexe de la cellule.
La valeur par défaut est la valeur de la propriété
Vous pouvez utiliser une fonction d’étiquette pour combiner les valeurs de plusieurs éléments fournisseurs de données en une chaîne unique. Si elle est spécifiée, cette propriété est utilisée par la méthode
La fonction spécifiée pour la propriété
labelFunction(item:Object, column:GridColumn):String
Le paramètre
Une fonction standard peut concaténer les propriétés firstName et lastName de l’élément de fournisseur de données ou personnaliser la mise en forme d’une propriété de valeur de date.
Lorsque vous définissez cette propriété sur
En définissant cette propriété sur
Si la valeur de cette propriété n’est pas définie (configuration par défaut), la propriété
La signature de la propriété sortCompareFunction doit correspondre aux éléments suivants :
sortCompareFunction(obj1:Object, obj2:Object, column:GridColumn):int
La fonction doit renvoyer une valeur basée sur la comparaison des objets :
La fonction peut utiliser le paramètre de colonne pour écrire des fonctions de comparaison génériques.
Remarque : les paramètres
Si l’objet dataProvider n’est pas un objet ICollectionView, cette propriété n’a aucun effet.
La définition de cette propriété ne permet pas de lancer un tri, mais seulement de définir le sens du tri. Lorsque la méthode
Si le fournisseur de données n’est pas un objet ICollectionView, cette propriété n’a aucun effet.
Si la propriété
Si la propriété
Si les propriétés
Si le fournisseur de données n’est pas un objet ICollectionView, cette propriété n’a aucun effet.
Il s’agit d’une interface optionnelle pour l’ensemble des éléments visuels générés par fabrique, à l’exception des éléments de rendus itemRenderers :
public function prepareGridVisualElement(grid:Grid, rowIndex:int, columnIndex:int):void { caretStroke.color = grid.dataGrid.getStyle("caretColor"); }
Les paramètres
DataGridSkin.mxml comporte de nombreux autres exemples de ce type. Notez que les éléments visuels d’habillage DataGrid personnalisés peuvent choisir de ne pas implémenter cette interface si la flexibilité qu’elle apporte n’est pas nécessaire.
Si l’élément visuel est généré par une partie d’habillage DataGrid de type fabrique, comme selectionIndicator ou hoverIndicator,
Au lieu d’utiliser la classe DefaultGridItemEditor, vous pouvez créer un éditeur d’élément personnalisé. L’éditeur d’élément doit implémenter l’interface spark.components.gridClasses.IGridItemEditor. En règle générale, vous créez un éditeur d’élément en tant que sous-classe de la classe spark.components.gridClasses.GridItemEditor.
Utilisez les constantes dans ActionsScript, comme l’illustre l’exemple suivant :
myDG.selectionMode = GridSelectionMode.MULTIPLE_CELLS;
Dans MXML, utilisez la valeur de chaîne des constantes, comme l’illustre l’exemple suivant :
<s:DataGrid id="myGrid" width="350" height="150" selectionMode="multipleCells"> ... </s:DataGrid>
Les rendus d’élément sont associés à chaque colonne d’une grille. Définissez le rendu d’élément d’une colonne à l’aide de la
Par défaut, un rendu d'élément ne s'écrête pas aux limites de la cellule. Si votre rendu s'étend au-delà des limites de la cellule, vous pouvez définir la valeur
Les transitions dans les rendus d’éléments DataGrid ne sont pas prises en charge. La classe GridItemRenderer ayant désactivé sa propriété
Considérations d’efficacité
Les performances de défilement et de démarrage des composants DataGrid sont directement liées à la complexité du rendu d’élément et au nombre de rendus d’élément visibles au sein du défilement DataGrid. Les occurrences GridItemRenderer personnalisées sont utilisées et réutilisées à plusieurs reprises. Il est donc important de les définir de la manière la plus simple et la plus efficace possible.
Si la responsabilité d’un rendu d’élément est limitée à l’affichage d’une ou plusieurs lignes de texte, les développeurs doivent envisager d’utiliser la classe DefaultItemRenderer, très économique pour cette opération (pour une application à déployer uniquement sur Windows, vous pouvez obtenir des performances supplémentaires en utilisant plutôt la classe UITextFieldGridItemRenderer). La manière la plus efficace d’utiliser GridItemRenderer pour afficher l’élément dataField du composant GridColumn sous forme de texte consiste à identifier l’élément d’affichage de texte du composant GridItemRenderer avec
Un rendu d’élément contenant plusieurs éléments visuels dont les propriétés dépendent des données du rendu d’élément peut utiliser la liaison de données pour définir les valeurs de ces propriétés. Cette approche fournit du code MXML simple à lire et à entretenir et ses performances peuvent être suffisantes si le nombre de rendus d’élément visibles est limité (voir les propriétés
Les rendus GridItemRenderer doivent être aussi simples que possible. Pour obtenir les meilleures performances possibles, réduisez le nombre de composants et la profondeur de la hiérarchie. Si cela s’avère pratique, utilisez des positions et des tailles explicites plutôt que des contraintes pour définir la présentation. Les éléments DataGrid avec
Des exemples concernant les différentes configurations GridItemRenderer décrites ici sont disponibles dans la section des exemples.
Cette méthode n’est pas destinée à être appelée directement. Elle est appelée par l'implémentation DataGrid.
Une sous-classe de GridItemRenderer doit remplacer cette méthode pour renvoyer une valeur si le comportement souhaité est différent du comportement par défaut.
Dans Flex 4.0, les 3 états principaux étaient "normal", "hovered" et "selected". Dans Flex 4.5, "down" et "downAndSelected" ont été ajoutés.
L’ensemble complet des états pris en charge (par ordre de priorité) est le suivant :
Cette méthode peut être utilisée pour configurer tous les éléments visuels et les propriétés d’un rendu. L'utilisation de cette méthode peut être plus efficace que la liaison des propriétés
La méthode
Cette méthode n’est pas destinée à être appelée directement. Elle est appelée par l'implémentation DataGrid.
Les rendus d’élément peuvent remplacer cette définition de propriété pour accéder aux données de la rangée entière de la grille.
Contrairement à un rendu d'élément de liste, les rendus d'élément de grille ne possèdent pas la responsabilité exclusive de l'affichage de l'indicateur vers le bas. La grille elle-même effectue le rendu de l'indicateur vers le bas pour la ligne ou la cellule sélectionnée. Le rendu d’élément peut également modifier ses propriétés visuelles pour mettre en évidence qu’il est actuellement sélectionné.
Contrairement à un rendu d'élément de liste, les rendus d'élément de grille n'ont pas la responsabilité exclusive d'afficher un élément indiquant que le rendu ou sa ligne sont situés sous la souris. La grille elle-même affiche automatiquement la partie d'habillage hoverIndicator pour la ligne ou la cellule survolée. Les rendus d'élément de grille peuvent également modifier leurs propriétés pour mettre en évidence qu'ils sont survolés.
Contrairement à un rendu d'élément de liste, les rendus d'élément de grille n'ont pas la responsabilité exclusive d'afficher un élément indiquant qu'ils font partie de la sélection. La grille elle-même affiche automatiquement la partie d'habillage selectionIndicator pour les lignes ou les cellules sélectionnées. Le rendu d'élément peut également modifier ses propriétés visuelles pour souligner qu'elle fait partie de la sélection.
Contrairement à un rendu d'élément de liste, les rendus d'élément de grille n'ont pas la responsabilité exclusive d'afficher un élément indiquant que leur cellule ou ligne a le signe d'insertion. La grille elle-même affiche automatiquement la partie d'habillage caretIndicator pour la ligne ou la cellule du signe d'insertion. Le rendu d'élément peut également modifier ses propriétés visuelles pour mettre en évidence qu'il a le signe d'insertion.
Toutes les propriétés de l’éditeur d’élément sont définies par le propriétaire au début de la session de l’éditeur. La propriété
Lorsque l’éditeur est fermé, la valeur d’entrée peut être enregistrée ou annulée. En cas d’enregistrement, la fonction
N’appelez pas cette méthode directement. Elle doit être appelée uniquement par le contrôle qui héberge l’éditeur d’élément.
N’appelez pas cette méthode directement. Elle doit être appelée uniquement par le contrôle qui héberge l’éditeur d’élément.
N’appelez pas cette méthode directement. Elle doit être appelée uniquement par le contrôle qui héberge l’éditeur d’élément. Pour enregistrer et fermer l’éditeur, appelez la méthode
<s:GridItemEditor>
tag inherits all of the tag
attributes of its superclass and adds the following tag attributes:
<s:GridItemEditor Properties column="null" data="null" imeMode="null" itemRenderer="null" rowIndex="0" value="null" />]]>
Les éditeurs d’élément sont associés à chaque colonne d’une grille. Définissez l’éditeur d’élément d’une colonne à l’aide de la
N’appelez pas cette méthode directement. Elle doit être appelée uniquement par le contrôle qui héberge l’éditeur d’élément.
N’appelez pas cette méthode directement. Elle doit être appelée uniquement par le contrôle qui héberge l’éditeur d’élément.
N’appelez pas cette méthode directement. Elle doit être appelée uniquement par le contrôle qui héberge l’éditeur d’élément. Pour enregistrer et fermer l’éditeur, appelez la méthode
La classe flash.system.IMEConversionMode définit des constantes pour les valeurs possibles de cette propriété. Vous pouvez également spécifier
Par défaut, la méthode
Un grand nombre de rendus d’élément personnalisés remplacent les méthodes Get et Set de cette propriété. Remplacez la méthode Set pour initialiser l’éditeur en fonction de la valeur de la cellule. Remplacez la méthode Get pour renvoyer une nouvelle valeur de cellule à la méthode
Toutes les propriétés du rendu sont définies au cours de l’exécution de la méthode
Lorsqu’un rendu d’élément n’est plus nécessaire, soit parce qu’il sera ajouté à la liste « libre » interne de rendus réutilisables, soit parce qu’il n’a plus d’utilité, la méthode
Cette méthode n’est pas destinée à être appelée directement. Elle est appelée par l'implémentation DataGrid.
Cette méthode peut être utilisée pour configurer tous les éléments visuels et les propriétés d’un rendu. L'utilisation de cette méthode peut être plus efficace que la liaison des propriétés
La méthode
Cette méthode n’est pas destinée à être appelée directement. Elle est appelée par l'implémentation DataGrid.
Contrairement à un rendu d'élément de liste, les rendus d'élément de grille ne possèdent pas la responsabilité exclusive de l'affichage de l'indicateur vers le bas. La grille elle-même effectue le rendu de l'indicateur vers le bas pour la ligne ou la cellule sélectionnée. Le rendu d’élément peut également modifier ses propriétés visuelles pour mettre en évidence qu’il est actuellement sélectionné.
Contrairement à un rendu d'élément de liste, les rendus d'élément de grille n'ont pas la responsabilité exclusive d'afficher un élément indiquant que le rendu ou sa ligne sont situés sous la souris. La grille elle-même affiche automatiquement la partie d'habillage hoverIndicator pour la ligne ou la cellule survolée. Les rendus d'élément de grille peuvent également modifier leurs propriétés pour mettre en évidence qu'ils sont survolés.
La classe GridItemRenderer copie automatiquement la valeur de cette propriété vers la propriété
Contrairement à un rendu d'élément de liste, les rendus d'élément de grille n'ont pas la responsabilité exclusive d'afficher un élément indiquant qu'ils font partie de la sélection. La grille elle-même affiche automatiquement la partie d'habillage selectionIndicator pour les lignes ou les cellules sélectionnées. Le rendu d'élément peut également modifier ses propriétés visuelles pour souligner qu'elle fait partie de la sélection.
Contrairement à un rendu d'élément de liste, les rendus d'élément de grille n'ont pas la responsabilité exclusive d'afficher un élément indiquant que leur cellule ou ligne a le signe d'insertion. La grille elle-même affiche automatiquement la partie d'habillage caretIndicator pour la ligne ou la cellule du signe d'insertion. Le rendu d'élément peut également modifier ses propriétés visuelles pour mettre en évidence qu'il a le signe d'insertion.
L’exemple suivant illustre un objet GridColumn qui utilise la classe ComboBoxGridItemEditor comme éditeur d’élément :
<s:GridColumn dataField="quant" headerText="Qty"> <s:itemEditor> <fx:Component> <s:ComboBoxGridItemEditor> <s:dataProvider> <s:ArrayList> <fx:int>0</fx:int> <fx:int>1</fx:int> <fx:int>2</fx:int> <fx:int>3</fx:int> </s:ArrayList> </s:dataProvider> </s:ComboBoxGridItemEditor> </fx:Component> </s:itemEditor> </s:GridColumn>