| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
La classe DataProvider fornisce i metodi e le proprietà che consentono di eseguire le query e modificare i dati in qualsiasi componente basato su elenco (ad esempio, in un componente List, DataGrid, TileList o ComboBox).
Un fornitore di dati è una raccolta lineare di voci che funge da origine dati, ad esempio, un array. Ogni voce di un fornitore di dati è un oggetto o un oggetto XML contenente uno o più campi di dati. È possibile accedere alle voci contenute in un fornitore di dati dall'indice, utilizzando il metodo DataProvider.getItemAt().
Vedere gli esempi
length:uint [sola lettura]
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Il numero di voci presenti nel fornitore di dati.
Implementazione
public function get length():uint
Esempio
L'esempio seguente crea un'istanza del componente List e ridimensiona l'elenco per adattarlo al numero di voci presenti nel relativo fornitore di dati:
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)
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Crea un nuovo oggetto DataProvider mediante un elenco, un'istanza XML o un array di oggetti data come origine dati.
Parametri
| value:Object (default = null) — I dati utilizzati per creare DataProvider.
|
Esempio
L'esempio seguente crea un nuovo fornitore di dati utilizzando il metodo
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'esempio seguente popola un fornitore di dati utilizzando un oggetto 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'esempio seguente popola un fornitore di dati utilizzando un oggetto XML con attributi:
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'esempio seguente popola un fornitore di dati utilizzando un oggetto XML con nodi secondari:
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
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Aggiunge una voce alla fine del fornitore di dati.
Parametri
| item:Object — La voce da aggiungere alla fine del fornitore di dati corrente.
|
Vedere anche
Esempio
L'esempio seguente crea un nuovo fornitore di dati utilizzando il metodo
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
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Aggiunge una nuova voce al fornitore di dati nella posizione di indice specificata. Se l'indice specificato supera la lunghezza del fornitore di dati, esso viene ignorato.
Parametri
| item:Object — Un oggetto contenente i dati della voce da aggiungere.
|
| |
| index:uint — L'indice a cui deve essere aggiunta la voce.
|
Genera
| RangeError — L'indice specificato è inferiore a 0 o superiore o uguale alla lunghezza del fornitore di dati.
|
Vedere anche
public function addItems(items:Object):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Aggiunge più voci alla fine del DataProvider e invia un evento DataChangeType.ADD. Le voci vengono aggiunte nell'ordine in cui vengono specificate.
Parametri
| items:Object — Le voci da aggiungere al fornitore di dati.
|
Vedere anche
Esempio
L'esempio seguente utilizza il metodo
addItems() per aggiungere diverse voci al fornitore di dati:
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
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Aggiunge varie voci al fornitore di dati nella posizione di indice specificata e invia un evento DataChangeType.ADD.
Parametri
| items:Object — Le voci da aggiungere al fornitore di dati.
|
| |
| index:uint — L'indice in cui devono essere inserite le voci.
|
Genera
| RangeError — L'indice specificato è inferiore a 0 o superiore o uguale alla lunghezza del fornitore di dati.
|
Vedere anche
public function clone():DataProvider
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Crea una copia dell'oggetto DataProvider corrente.
Restituisce
public function concat(items:Object):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Concatena le voci specificate alla fine del fornitore di dati corrente. Questo metodo invia un evento DataChangeType.ADD.
Parametri
| items:Object — Le voci da aggiungere al fornitore di dati.
|
Vedere anche
public function getItemAt(index:uint):Object
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Restituisce la voce nella posizione di indice specificata.
Parametri
| index:uint — Posizione della voce da restituire.
|
Restituisce
| Object — La voce nella posizione di indice specificata.
|
Genera
| RangeError — L'indice specificato è inferiore a 0 o superiore o uguale alla lunghezza del fornitore di dati.
|
Vedere anche
public function getItemIndex(item:Object):int
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Restituisce la posizione di indice della voce specificata.
Parametri
| item:Object — La voce da trovare.
|
Restituisce
| int — L'indice della voce specificata, oppure -1 se non è possibile trovare la voce specificata.
|
Vedere anche
public function invalidate():void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Invalida tutte le voci di dati nel DataProvider e invia un evento DataChangeEvent.INVALIDATE_ALL. Le voci vengono invalidate dopo che sono state modificate; DataProvider ridisegna automaticamente le voci invalidate.
Vedere anche
public function invalidateItem(item:Object):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Invalida la voce specificata. Una voce viene invalidata dopo che è stata modificata; DataProvider ridisegna automaticamente la voce invalidata.
Parametri
| item:Object — Voce da invalidare.
|
Vedere anche
public function invalidateItemAt(index:int):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Invalida la voce nella posizione di indice specificata. Una voce viene invalidata dopo che è stata modificata; DataProvider ridisegna automaticamente la voce invalidata.
Parametri
| index:int — Indice della voce da invalidare.
|
Genera
| RangeError — L'indice specificato è inferiore a 0 o superiore o uguale alla lunghezza del fornitore di dati.
|
Vedere anche
public function merge(newData:Object):void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Unisce i dati specificati ai dati contenuti nel fornitore di dati e rimuove le voci duplicate. Questo metodo invia un evento DataChangeType.ADD.
Parametri
| newData:Object — I dati da unire all'interno del fornitore di dati.
|
Vedere anche
public function removeAll():void
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Rimuove tutte le voci dal fornitore di dati e invia un evento DataChangeType.REMOVE_ALL.
Vedere anche
public function removeItem(item:Object):Object
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Rimuove la voce specificata dal fornitore di dati e invia un evento DataChangeType.REMOVE.
Parametri
| item:Object — Voce da rimuovere.
|
Restituisce
| Object — La voce che è stata rimossa.
|
Vedere anche
public function removeItemAt(index:uint):Object
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Rimuove la voce nella posizione di indice specificata e invia un evento DataChangeType.REMOVE.
Parametri
| index:uint — Indice della voce da rimuovere.
|
Restituisce
| Object — La voce che è stata rimossa.
|
Genera
| RangeError — L'indice specificato è inferiore a 0 o superiore o uguale alla lunghezza del fornitore di dati.
|
Vedere anche
public function replaceItem(newItem:Object, oldItem:Object):Object
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Sostituisce una voce esistente con una nuova voce e invia un evento DataChangeType.REPLACE.
Parametri
| newItem:Object — La voce da sostituire.
|
| |
| oldItem:Object — La voce sostitutiva.
|
Restituisce
| Object — La voce che è stata sostituita.
|
Genera
| RangeError — Impossibile trovare la voce nel fornitore di dati.
|
Vedere anche
public function replaceItemAt(newItem:Object, index:uint):Object
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Sostituisce la voce nell'indice specificato e invia un evento DataChangeType.REPLACE.
Parametri
| newItem:Object — La voce sostitutiva.
|
| |
| index:uint — L'indice della voce da sostituire.
|
Restituisce
| Object — La voce che è stata sostituita.
|
Genera
| RangeError — L'indice specificato è inferiore a 0 o superiore o uguale alla lunghezza del fornitore di dati.
|
Vedere anche
public function sort(... sortArgs):*
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Ordina le voci contenute nel fornitore di dati e invia un evento DataChangeType.SORT.
Parametri
| ... sortArgs — Gli argomenti da utilizzare per l'ordinamento.
|
Restituisce
| * — Il valore che viene restituito dipende dal ricevimento o meno di argomenti da parte del metodo. Per maggiori informazioni, vedere il metodo Array.sort(). Questo metodo restituisce un valore 0 quando la proprietà sortOption è impostata su Array.UNIQUESORT.
|
Vedere anche
public function sortOn(fieldName:Object, options:Object = null):*
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Ordina le voci contenute nel fornitore di dati in base al campo specificato e invia un evento DataChangeType.SORT. Il campo specificato può corrispondere a una stringa o a un array di valori stringa che designano più campi da ordinare in ordine di precedenza.
Parametri
| fieldName:Object — Il campo della voce in base al quale eseguire l'ordinamento. Questo valore può essere una stringa o un array di valori stringa.
|
| |
| options:Object (default = null) — Le opzioni per l'ordinamento.
|
Restituisce
| * — Il valore che viene restituito dipende dal ricevimento o meno di argomenti da parte del metodo. Per ulteriori informazioni, vedere il metodo Array.sortOn(). Se la proprietà sortOption è impostata su Array.UNIQUESORT, questo metodo restituisce il valore 0.
|
Vedere anche
public function toArray():Array
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Crea un oggetto Array che rappresenta i dati contenuti nel fornitore di dati.
Restituisce
| Array — Un oggetto Array che rappresenta i dati contenuti nel fornitore di dati.
|
public override function toString():String
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Crea una stringa che rappresenta i dati contenuti nel fornitore di dati.
Restituisce
| String — Una stringa che rappresenta i dati contenuti nel fornitore di dati.
|
Tipo di oggetto evento: fl.events.DataChangeEvent
DataChangeEvent.type property = fl.events.DataChangeEvent.DATA_CHANGE
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Inviato dopo che i dati sono stati modificati.
Definisce il valore della proprietà
type di un oggetto evento
dataChange.
Questo evento ha le seguenti proprietà:
| Proprietà | Valore |
bubbles | false |
cancelable | false; non è presente alcun comportamento predefinito da annullare. |
changeType | Identifica il tipo di modifica che è stata apportata. |
currentTarget | L'oggetto che elabora attivamente l'oggetto event con un listener di eventi. |
endIndex | Identifica l'indice dell'ultima voce che è stata modificata. |
items | Un array che elenca le voci modificate. |
startIndex | Identifica l'indice della prima voce che è stata modificata. |
target | L'oggetto che invia l'evento. Il target non è sempre l'oggetto listener dell'evento. Utilizzare la proprietà currentTarget per accedere all'oggetto che ascolta l'evento. |
Vedere anche
Tipo di oggetto evento: fl.events.DataChangeEvent
DataChangeEvent.type property = fl.events.DataChangeEvent.PRE_DATA_CHANGE
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9.0.28.0 |
Inviato prima che cambino i dati.
Definisce il valore della proprietà
type di un oggetto evento
preDataChange. Questo oggetto evento viene inviato prima che i dati del componente vengano modificati.
Questo evento ha le seguenti proprietà:
| Proprietà | Valore |
bubbles | false |
cancelable | false; non è presente alcun comportamento predefinito da annullare. |
changeType | Identifica il tipo di modifica che deve essere apportata. |
currentTarget | L'oggetto che elabora attivamente l'oggetto event con un listener di eventi. |
endIndex | Identifica l'indice dell'ultima voce da modificare. |
items | Un array che elenca le voci da modificare. |
startIndex | Identifica l'indice della prima voce da modificare. |
target | L'oggetto che invia l'evento. Il target non è sempre l'oggetto listener dell'evento. Utilizzare la proprietà currentTarget per accedere all'oggetto che ascolta l'evento. |
Vedere anche
Questo esempio mostra come i fornitori di dati possono essere utilizzati per gestire il contenuto di diverse griglie di dati.
Per provare l'esempio, eseguire queste operazioni:
- Aggiungere i componenti Label, Button, ComboBox, TextInput e DataGrid alla libreria.
- Salvare questo codice come DataProviderExample.as nella stessa directory del file FLA.
- Impostare la classe documento nel file FLA su 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. All rights reserved.
Fri Oct 12 2007, 3:14 AM GMT-07:00
Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/fl/data/DataProvider.html