| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
La classe DataProvider fournit des méthodes et des propriétés permettant de demander et de modifier les données dans un composant à base de liste, tel que List, DataGrid, TileList ou ComboBox.
Un fournisseur de données est une collection linéaire d'éléments qui fait office de source de données (ex., un tableau). Chaque élément présent dans un fournisseur de données est un objet ou un objet XML contenant un ou plusieurs champs de données. Vous pouvez accéder aux éléments contenus dans un fournisseur de données par leur index, à l'aide de la méthode DataProvider.getItemAt().
Consulter les exemples
length:uint [lecture-seule]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Nombre d'éléments contenus dans le fournisseur de données.
Implémentation
public function get length():uint
Exemple
L'exemple suivant crée une occurrence du composant List et redimensionne la liste pour qu'elle contienne le nombre d'éléments de son fournisseur de données :
import fl.controls.List;
import fl.data.DataProvider;
var dp:DataProvider = new DataProvider();
dp.addItem({label:"Item 1"});
dp.addItem({label:"Item 2"});
dp.addItem({label:"Item 3"});
dp.addItem({label:"Item 4"});
var myList:List = new List();
myList.dataProvider = dp;
myList.rowHeight = 35;
myList.rowCount = dp.length;
myList.move(10, 10);
addChild(myList);
public function DataProvider(value:Object = null)
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Crée un nouvel objet DataProvider en utilisant une liste, une occurrence XML ou un tableau d'objets de données comme source de données.
Paramètres
| value:Object (default = null) — Données utilisées pour créer l'objet DataProvider.
|
Exemple
L'exemple suivant crée un nouveau fournisseur de données à l'aide de la méthode
addItem() :
import fl.controls.ComboBox;
import fl.data.DataProvider;
var dp:DataProvider = new DataProvider();
dp.addItem({label:"item 1a"});
dp.addItem({label:"item 2a"});
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
L'exemple suivant remplit un fournisseur de données à l'aide d'un objet Array :
import fl.controls.ComboBox;
import fl.data.DataProvider;
var arr:Array = new Array();
arr.push({label:"item 1b"});
arr.push({label:"item 2b"});
var dp:DataProvider = new DataProvider(arr);
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
L'exemple suivant remplit un fournisseur de données à l'aide d'un objet XML avec attributs :
import fl.controls.ComboBox;
import fl.data.DataProvider;
var xml:XML = <items>
<item label="item 1c" />
<item label="item 2c" />
</items>;
var dp:DataProvider = new DataProvider(xml);
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
L'exemple suivant remplit un fournisseur de données à l'aide d'un objet XML avec des noeuds enfant :
import fl.controls.ComboBox;
import fl.data.DataProvider;
var xml:XML = <items>
<item>
<label>item 1d</label>
</item>
<item>
<label>item 2d</label>
</item>
</items>;
var dp:DataProvider = new DataProvider(xml);
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
public function addItem(item:Object):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Ajoute un élément à la fin du fournisseur de données.
Paramètres
| item:Object — Elément à ajouter à la fin du fournisseur de données actif.
|
Voir aussi
Exemple
L'exemple suivant crée un nouveau fournisseur de données à l'aide de la méthode
addItem() :
import fl.controls.ComboBox;
import fl.data.DataProvider;
var dp:DataProvider = new DataProvider();
dp.addItem({label:"item 1a"});
dp.addItem({label:"item 2a"});
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
public function addItemAt(item:Object, index:uint):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Ajoute un nouvel élément au fournisseur de données à l'index spécifié. Si la longueur de l'index spécifié est supérieure à celle du fournisseur de données, l'index est ignoré.
Paramètres
| item:Object — Objet contenant les données de l'élément à ajouter.
|
| |
| index:uint — Index auquel l'élément doit être ajouté.
|
Lance
| RangeError — L'index spécifié est inférieur à 0 ou supérieur ou égal à la longueur du fournisseur de données.
|
Voir aussi
public function addItems(items:Object):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Ajoute plusieurs éléments à la fin de l'objet DataProvider et distribue un événement DataChangeType.ADD. Les éléments sont ajoutés dans l'ordre dans lequel ils sont spécifiés.
Paramètres
| items:Object — Eléments à ajouter au fournisseur de données.
|
Voir aussi
Exemple
L'exemple suivant utilise la méthode
addItems() pour ajouter plusieurs éléments au fournisseur de données :
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;
import fl.data.DataProvider;
var arr:Array = [{col1:"1.A", col2:"1.B"}, {col1:"2.A", col2:"2.B"}]
var dp:DataProvider = new DataProvider();
dp.addItems(arr);
trace(dp.length); // 2
var c1:DataGridColumn = new DataGridColumn("col1");
var c2:DataGridColumn = new DataGridColumn("col2");
var myDataGrid:DataGrid = new DataGrid();
myDataGrid.addColumn(c1);
myDataGrid.addColumn(c2);
myDataGrid.dataProvider = dp;
myDataGrid.setSize(200, 160);
myDataGrid.move(10, 10);
addChild(myDataGrid);
public function addItemsAt(items:Object, index:uint):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Ajoute plusieurs éléments au fournisseur de données à l'index spécifié et distribue un événement DataChangeType.ADD.
Paramètres
| items:Object — Eléments à ajouter au fournisseur de données.
|
| |
| index:uint — Index auquel les éléments doivent être insérés.
|
Lance
| RangeError — L'index spécifié est inférieur à 0 ou supérieur ou égal à la longueur du fournisseur de données.
|
Voir aussi
public function clone():DataProvider
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Crée une copie de l'objet DataProvider actif.
Valeur renvoyée
| DataProvider — Nouvelle occurrence de cet objet DataProvider.
|
public function concat(items:Object):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Concatène les éléments spécifiés à la fin du fournisseur de données actif. Cette méthode distribue un événement DataChangeType.ADD.
Paramètres
| items:Object — Eléments à ajouter au fournisseur de données.
|
Voir aussi
public function getItemAt(index:uint):Object
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Renvoie l'élément à l'emplacement d'index spécifié.
Paramètres
| index:uint — Emplacement de l'élément à renvoyer.
|
Valeur renvoyée
| Object — Elément présent à l'index spécifié.
|
Lance
| RangeError — L'index spécifié est inférieur à 0 ou supérieur ou égal à la longueur du fournisseur de données.
|
Voir aussi
public function getItemIndex(item:Object):int
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Renvoie l'index de l'élément spécifié.
Paramètres
| item:Object — Elément à localiser.
|
Valeur renvoyée
| int — Index de l'élément spécifié, ou -1 si l'élément spécifié est introuvable.
|
Voir aussi
public function invalidate():void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Invalide tous les éléments de données contenus dans l'objet DataProvider et distribue un événement DataChangeEvent.INVALIDATE_ALL. Les éléments sont invalidés après avoir été modifiés ; l'objet DataProvider redessine automatiquement les éléments invalidés.
Voir aussi
public function invalidateItem(item:Object):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Annule l'élément spécifié. Un élément est annulé après avoir été modifié ; l'objet DataProvider redessine automatiquement l'élément annulé.
Paramètres
| item:Object — Elément à annuler.
|
Voir aussi
public function invalidateItemAt(index:int):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Annule l'élément à l'index spécifié. Un élément est annulé après avoir été modifié ; l'objet DataProvider redessine automatiquement l'élément annulé.
Paramètres
| index:int — Index de l'élément à annuler.
|
Lance
| RangeError — L'index spécifié est inférieur à 0 ou supérieur ou égal à la longueur du fournisseur de données.
|
Voir aussi
public function merge(newData:Object):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Ajoute les données spécifiées aux données contenues dans le fournisseur de données et supprime les doublons éventuels. Cette méthode distribue un événement DataChangeType.ADD.
Paramètres
| newData:Object — Données à fusionner dans le fournisseur de données.
|
Voir aussi
public function removeAll():void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Retire tous les éléments du fournisseur de données et distribue un événement DataChangeType.REMOVE_ALL.
Voir aussi
public function removeItem(item:Object):Object
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Retire l'élément spécifié du fournisseur de données et distribue un événement DataChangeType.REMOVE.
Paramètres
| item:Object — Elément à supprimer.
|
Valeur renvoyée
| Object — Elément qui a été supprimé.
|
Voir aussi
public function removeItemAt(index:uint):Object
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Supprime l'élément à l'index spécifié et distribue un événement DataChangeType.REMOVE.
Paramètres
| index:uint — Index de l'élément à supprimer.
|
Valeur renvoyée
| Object — Elément qui a été supprimé.
|
Lance
| RangeError — L'index spécifié est inférieur à 0 ou supérieur ou égal à la longueur du fournisseur de données.
|
Voir aussi
public function replaceItem(newItem:Object, oldItem:Object):Object
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Remplace un élément existant par un nouveau et distribue un événement DataChangeType.REPLACE.
Paramètres
| newItem:Object — Elément à remplacer.
|
| |
| oldItem:Object — Elément de remplacement.
|
Valeur renvoyée
| Object — Elément qui a été remplacé.
|
Lance
| RangeError — Elément introuvable dans le fournisseur de données.
|
Voir aussi
public function replaceItemAt(newItem:Object, index:uint):Object
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Remplace l'élément à l'index spécifié et distribue un événement DataChangeType.REPLACE.
Paramètres
| newItem:Object — Elément de remplacement.
|
| |
| index:uint — Index de l'élément à remplacer.
|
Valeur renvoyée
| Object — Elément qui a été remplacé.
|
Lance
| RangeError — L'index spécifié est inférieur à 0 ou supérieur ou égal à la longueur du fournisseur de données.
|
Voir aussi
public function sort(... sortArgs):*
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Trie les éléments du fournisseur de données et distribue un événement DataChangeType.SORT.
Paramètres
| ... sortArgs — Arguments à utiliser comme critères de tri.
|
Valeur renvoyée
| * — La valeur renvoyée varie selon que la méthode reçoit ou non des arguments. Reportez-vous à la méthode Array.sort() pour plus d'informations. Cette méthode renvoie la valeur 0 lorsque la propriété sortOption est définie sur Array.UNIQUESORT.
|
Voir aussi
public function sortOn(fieldName:Object, options:Object = null):*
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Trie les éléments du fournisseur de données en fonction du champ spécifié et distribue un événement DataChangeType.SORT. Le champ spécifié peut être une chaîne ou un tableau de valeurs de chaîne désignant plusieurs champs en fonction duquel le tri doit s'effectuer, par ordre de priorité.
Paramètres
| fieldName:Object — Champ d'élément en fonction duquel s'effectue le tri. Cette valeur peut être une chaîne ou un tableau de valeurs de chaîne.
|
| |
| options:Object (default = null) — Options du tri.
|
Valeur renvoyée
| * — La valeur renvoyée varie selon que la méthode reçoit ou non des arguments. Pour plus d'informations, consultez la méthode Array.sortOn(). Si la propriété sortOption est définie sur Array.UNIQUESORT, cette méthode renvoie la valeur 0.
|
Voir aussi
public function toArray():Array
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Crée une représentation d'objet Array des données contenues dans le fournisseur de données.
Valeur renvoyée
| Array — Représentation d'objet Array des données contenues dans le fournisseur de données.
|
public override function toString():String
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Crée une représentation sous forme de chaîne des données contenues dans le fournisseur de données.
Valeur renvoyée
| String — Représentation sous forme de chaîne des données contenues dans le fournisseur de données.
|
Type d'objet événement: fl.events.DataChangeEvent
DataChangeEvent.type property = fl.events.DataChangeEvent.DATA_CHANGE
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Distribué après que les données aient changé.
Définit la valeur de la propriété
type d'un objet de l'événement
dataChange.
Les propriétés de cet événement sont les suivantes :
| Propriété | Valeur |
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
changeType | Indique le type du changement effectué. |
currentTarget | Objet qui traite activement l’objet de l'événement avec un écouteur d’événement. |
endIndex | Identifie l'index du dernier élément modifié. |
items | Tableau qui dresse la liste des éléments modifiés. |
startIndex | Identifie l'index du premier élément modifié. |
target | Objet qui a diffusé l’événement. La cible n'est pas toujours l'objet écoutant l'événement. Pour accéder à l'objet qui écoute l'événement, utilisez la propriété currentTarget. |
Voir aussi
Type d'objet événement: fl.events.DataChangeEvent
DataChangeEvent.type property = fl.events.DataChangeEvent.PRE_DATA_CHANGE
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9.0.28.0 |
Distribué avant que les données ne changent.
Définit la valeur de la propriété
type d'un objet de l'événement
preDataChange. Cet objet d'événement est diffusé avant le changement des données du composant.
Les propriétés de cet événement sont les suivantes :
| Propriété | Valeur |
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
changeType | Indique le type du changement à effectuer. |
currentTarget | Objet qui traite activement l’objet de l'événement avec un écouteur d’événement. |
endIndex | Identifie l'index du dernier élément à modifier. |
items | Tableau qui dresse la liste des éléments à modifier. |
startIndex | Identifie l'index du premier élément à modifier. |
target | Objet qui a diffusé l’événement. La cible n'est pas toujours l'objet écoutant l'événement. Pour accéder à l'objet qui écoute l'événement, utilisez la propriété currentTarget. |
Voir aussi
Cet exemple montre comment utiliser les fournisseurs de données pour gérer le contenu de plusieurs grilles de données.
Pour exécuter l'exemple, suivez ces étapes :
- Ajoutez les composants Label, Button, ComboBox, TextInput et DataGrid à la bibliothèque.
- Enregistrez ce code sous le nom DataProviderExample.as dans le même répertoire que votre fichier FLA.
- Dans le fichier FLA, définissez la classe Document sur DataProviderExample.
package
{
import fl.controls.Button;
import fl.controls.ComboBox;
import fl.controls.DataGrid;
import fl.controls.Label;
import fl.controls.TextInput;
import fl.data.DataProvider;
import flash.display.Sprite;
import flash.events.*;
import flash.text.TextFieldAutoSize;
public class DataProviderExample extends Sprite
{
private var southern:DataGrid;
private var northern:DataGrid;
private var world:DataGrid;
private var southernRoster:DataProvider;
private var northernRoster:DataProvider;
private var leagueCB:ComboBox;
private var nameTI:TextInput;
private var goalsTI:TextInput;
private var submitBtn:Button;
public function DataProviderExample() {
southernRoster = new DataProvider();
northernRoster = new DataProvider();
createDataGrids();
createUI();
}
private function createUI():void {
var description:Label = new Label();
description.text = "Enter player's name, goals scored, and hemisphere of origin:";
description.autoSize = TextFieldAutoSize.LEFT;
nameTI = new TextInput();
goalsTI = new TextInput();
var submitBtn:Button = new Button();
submitBtn.label = "Submit Player";
submitBtn.addEventListener(MouseEvent.CLICK, submitPlayer);
leagueCB = new ComboBox();
leagueCB.addItem( { label:"Northern", data: 0 } );
leagueCB.addItem( { label:"Southern", data: 1 } );
description.move(10,10);
nameTI.move(10,40);
nameTI.setSize(150,24);
goalsTI.move(170,40);
goalsTI.setSize(40,24);
leagueCB.move(220,40);
leagueCB.setSize(120,24);
submitBtn.move(350,40);
goalsTI.restrict = "0123456789";
addChild(description);
addChild(leagueCB);
addChild(submitBtn);
addChild(nameTI);
addChild(goalsTI);
}
private function submitPlayer(e:MouseEvent):void {
if(nameTI.text != "" && goalsTI.text != "") {
var targetRoster:DataProvider;
if(leagueCB.selectedItem.label == "Southern") {
targetRoster = southernRoster;
}
else {
targetRoster = northernRoster;
}
targetRoster.addItem( { Name: nameTI.text, Goals: goalsTI.text } );
var worldRoster:DataProvider = southernRoster.clone();
worldRoster.merge(northernRoster);
worldRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING);
southernRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING);
northernRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING);
world.dataProvider = worldRoster;
nameTI.text = "";
goalsTI.text = "";
}
}
private function createDataGrids():void {
southern = new DataGrid();
northern = new DataGrid();
world = new DataGrid();
southern.move(10,100);
northern.move(180,100);
world.move(350,100);
southern.setSize(170, 250);
northern.setSize(170, 250);
world.setSize(170, 250);
southern.columns =
northern.columns =
world.columns = [ "Name", "Goals" ];
southern.dataProvider = southernRoster;
northern.dataProvider = northernRoster;
addChild(southern);
addChild(northern);
addChild(world);
var northernLabel:Label = new Label();
northernLabel.autoSize = TextFieldAutoSize.LEFT;
northernLabel.text = "Southern Hemisphere";
northernLabel.move(10,75);
addChild(northernLabel);
var southernLabel:Label = new Label();
southernLabel.autoSize = TextFieldAutoSize.LEFT;
southernLabel.text = "Northern Hemisphere";
southernLabel.move(180,75);
addChild(southernLabel);
var majorLabel:Label = new Label();
majorLabel.autoSize = TextFieldAutoSize.LEFT;
majorLabel.text = "World";
majorLabel.move(350,75);
addChild(majorLabel);
}
}
}
© 2004-2007 Adobe Systems Incorporated. Tous droits réservés.
Fri Oct 12 2007, 2:53 AM GMT-07:00
Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/fl/data/DataProvider.html