Package | mx.controls.listClasses |
Interface | public interface IDropInListItemRenderer |
Implémenteurs | AdvancedDataGridGroupItemRenderer, AdvancedDataGridHeaderRenderer, AdvancedDataGridItemRenderer, AdvancedListBase, Button, ComboBox, DataGridItemRenderer, DateField, FTEAdvancedDataGridItemRenderer, FTEDataGridItemRenderer, HTML, Image, Label, ListBase, ListItemRenderer, MXAdvancedDataGridItemRenderer, MXItemRenderer, MenuItemRenderer, NumericStepper, OLAPDataGridGroupRenderer, RendererBase, TextArea, TileListItemRenderer, TreeItemRenderer |
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
text
de l’étiquette. Il est facile d’écrire avec la liaison de données, mais dans ce cas, le rendu ne peut pas être réutilisé dans une autre colonne d’un contrôle DataGrid ou d’un autre contrôle List avec différents champs. L’objet IDropInListItemRenderer permet de réutiliser un rendu. Les classes de liste transmettent plus d’informations au rendu, afin qu’il puisse déterminer les champs à utiliser au moment de l’exécution.
Les composants que vous souhaitez utiliser comme rendus d’élément supplémentaires ou éditeurs d’élément supplémentaires doivent implémenter l’interface IDropInListItemRenderer. De nombreux composants Flex implémentent cette interface, et sont par conséquent utilisables comme rendus d’élément supplémentaires et éditeurs d’élément supplémentaires dans n’importe quelle colonne ou liste.
Les rendus d’élément supplémentaires ou les éditeurs d’élément supplémentaires doivent également implémenter l’interface IDataRenderer pour définir la propriété data
.
Lorsqu’un composant est utilisé en tant que rendu d’élément supplémentaire ou éditeur d’élément supplémentaire, Flex initialise la propriété listData
du composant avec les données appropriées du contrôle List. Le composant peut ensuite utiliser la propriété listData
pour initialiser la propriété data
du rendu d’élément supplémentaire ou de l’éditeur d’élément supplémentaire.
La propriété listData
est de type BaseListData, dans lequel la classe BaseListData comporte quatre sous-classes : DataGridListData, ListData, TreeListData et MenuListData. Le type de données réel de la valeur de la propriété listData
dépend du contrôle qui utilise le rendu d’élément supplémentaire ou l’éditeur d’élément supplémentaire. Pour un contrôle DataGrid, la valeur est de type DataGridListData, pour un contrôle List, la valeur est de type ListData, pour un contrôle Tree, la valeur est de type TreeListData et pour un contrôle Menu, la valeur est de type MenuListData..
L’exemple suivant montre la méthode setter pour la propriété data
du contrôle NumericStepper qui initialise la propriété value
de NumericStepper en fonction de la valeur de la propriété listData
:
public function set data(value:Object):void { _data = value; this.value = _listData ? parseFloat(_listData.label) : Number(_data); dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); }
Dans l’exemple ci-dessus, le contrôle NumericStepper ignore la propriété data
lors de la définition de la propriété value
de NumericStepper et utilise la propriété listData
à la place.
Pour implémenter l’interface IDropInListItemRenderer, définissez une méthode setter et getter pour implémenter la propriété listData
. En général, la méthode setter écrit la valeur de la propriété listData
sur une variable interne. La classe List affecte toujours cette propriété, puis définit l’élément du fournisseur de données dans la propriété data
.
Notez que la méthode setter de la propriété listData
ne distribue pas d’événement. Cela s’explique par le fait que les classes de liste définissent toujours la propriété listData
, puis la propriété data
. La définition de la propriété data
distribue également l’événement dataChange
. Vous ne définissez jamais la propriété listData
seule, de sorte qu’elle n’a pas besoin de distribuer son propre événement.
La méthode setter data
peut appeler la méthode invalidateProperties()
si elle effectue une opération qui nécessite la mise à jour du contrôle. C’est alors au développeur du composant d’écrire une méthode commitProperties()
pour déterminer que la propriété listData
a été modifiée et pour la gérer comme il se doit.
La méthode getter renvoie la valeur actuelle de la variable interne, comme l’illustre l’exemple suivant :
// Internal variable for the property value. private var _listData:BaseListData; // Make the listData property bindable. [Bindable("dataChange")] // Define the getter method. public function get listData():BaseListData { return _listData; } // Define the setter method, public function set listData(value:BaseListData):void { _listData = value; }
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
listData : BaseListData
Implémente la propriété listData à l’aide des méthodes setter et getter. | IDropInListItemRenderer |
listData | propriété |
listData:BaseListData
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Implémente la propriété listData
à l’aide des méthodes setter et getter.
Implémentation
public function get listData():BaseListData
public function set listData(value:BaseListData):void
Tue Jun 12 2018, 09:30 AM Z