Il componente DataGrid consente di visualizzare i dati in una griglia di righe e colonne, caricando i dati da un array oppure da un file XML esterno che può essere convertito in un array per il DataProvider. Il componente DataGrid include lo scorrimento verticale e orizzontale, il supporto degli eventi (compreso il supporto per le celle modificabili) e le capacità di ordinamento.
In una griglia potete ridimensionare e personalizzare caratteristiche come il carattere, il colore e i bordi delle colonne. È possibile usare un clip filmato personalizzato, ad esempio un renderer di celle, per qualsiasi colonna in una griglia. Un renderer di celle visualizza il contenuto di una cella. Potete disattivare le barre di scorrimento e usare i metodi DataGrid per creare una visualizzazione dello stile della vista di una pagina. Per ulteriori informazioni sulla personalizzazione, vedete la classe DataGridColumn nella
Guida di riferimento di ActionScript 3.0
per Flash Professional
.
Interazione dell'utente con il componente DataGrid
È possibile usare il mouse e la tastiera per interagire con un componente DataGrid.
Se le proprietà
sortableColumnse
e
sortable
della colonna hanno entrambe il valore
true
e fate clic su un'intestazione di colonna, i dati vengono ordinati in base ai valori della colonna. Potete disattivare l'ordinamento per una singola colonna impostando la relativa proprietà
sortable
su
false
.
Se il valore della proprietà
resizableColumns
è
true
, potete ridimensionare le colonne trascinando i relativi divisori nella riga di intestazione.
Se fate clic su una cella modificabile, questa viene attivata; se fate clic su una cella non modificabile, non ottenete alcun effetto. Una singola cella è modificabile quando entrambe le proprietà
DataGrid.editable
e
DataGridColumn.editable
hanno valore
true
.
Per ulteriori informazioni, vedete le classi DataGrid e DataGridColumn nella
Guida di riferimento di ActionScript 3.0
.
Quando un'istanza DataGrid viene attivata facendo clic con il mouse o premendo il tasto Tab, è possibile utilizzare i tasti seguenti per controllarla:
Chiave
|
Descrizione
|
Freccia giù
|
Quando è in corso la modifica di una cella, il punto di inserimento si sposta alla fine del testo della cella. Se una cella non è modificabile, il tasto Freccia giù gestisce la selezione nello stesso modo del componente List.
|
Freccia su
|
Quando è in corso la modifica di una cella, il punto di inserimento si sposta all'inizio del testo della cella. Se una cella non è modificabile, il tasto Freccia su gestisce la selezione nello stesso modo del componente List.
|
Maiusc+Freccia su/giù
|
Se il componente DataGrid non è modificabile e il valore di
allowMultipleSelection
è
true
, vengono selezionate righe contigue. L'inversione della direzione con la freccia opposta deseleziona le righe selezionate, finché non si oltrepassa la riga iniziale; a quel punto vengono selezionate le righe in quella direzione.
|
Maiusc+Clic
|
Se
allowMultipleSelection
è
true
, vengono selezionate tutte le righe tra la riga selezionata e la posizione corrente del cursore (la cella evidenziata).
|
Ctrl+Clic
|
Se
allowMultipleSelection
è
true
, vengono selezionate righe aggiuntive, non necessariamente contigue.
|
Freccia destra
|
Quando è in corso la modifica di una cella, il punto di inserimento si sposta di un carattere a destra. Se una cella non è modificabile, il tasto Freccia destra non esegue alcuna operazione.
|
Freccia sinistra
|
Quando è in corso la modifica di una cella, il punto di inserimento si sposta di un carattere a sinistra. Se una cella non è modificabile, il tasto Freccia sinistra non esegue alcuna operazione.
|
Home
|
Seleziona la prima riga nel componente DataGrid.
|
Fine
|
Seleziona l'ultima riga nel componente DataGrid.
|
Pag su
|
Seleziona la prima riga in una pagina del componente DataGrid. Una pagina è costituita dal numero di righe che il componente DataGrid è in grado di visualizzare senza scorrimento.
|
Pag giù
|
Seleziona l'ultima riga in una pagina del componente DataGrid. Una pagina è costituita dal numero di righe che il componente DataGrid è in grado di visualizzare senza scorrimento.
|
A capo/Invio/Maiusc+Invio
|
Quando una cella è modificabile, viene eseguito il commit della modifica e il punto di inserimento viene spostato sulla cella della stessa colonna, sulla riga successiva (su o giù, a seconda dell'uso o meno del tasto Maiusc).
|
Maiusc+Tab/Tab
|
Se il componente DataGrid è modificabile, l'attivazione si sposta alla voce precedente/successiva finché non viene raggiunta la fine della colonna, quindi alla riga precedente/successiva finché non viene raggiunta la prima o l'ultima cella. Se è selezionata la prima cella, premendo Maiusc+Tab l'attivazione si sposta al controllo precedente. Se è selezionata l'ultima cella, premendo Tab l'attivazione si sposta al controllo successivo.
Se il componente DataGrid non è modificabile, l'attivazione si sposta al controllo precedente/successivo.
|
Il componente DataGrid può essere utilizzato come base per numerosi tipi di applicazioni basate sui dati. Potete visualizzare facilmente una vista in formato tabella dei dati, ma anche usare le funzioni del renderer di celle per costruire elementi più sofisticati e modificabili dell'interfaccia utente. Alcuni usi pratici del componente DataGrid sono i seguenti:
-
Un client webmail
-
Pagine dei risultati delle ricerche
-
Applicazioni per fogli di calcolo, ad esempio per il calcolo delle rate di un prestito e per i moduli fiscali
Quando progettate un'applicazione con il componente DataGrid, è utile conoscere la struttura del componente List, in quanto la classe DataGrid estende la classe SelectableList. Per ulteriori informazioni sulla classe SelectableList e il componente List, vedete le classi SelectableList e List classes nella
Guida di riferimento di ActionScript 3.0
.
Quando aggiungete un componente DataGrid all'applicazione, potete renderlo accessibile a uno screen reader aggiungendo le seguenti righe di codice ActionScript:
import fl.accessibility.DataGridAccImpl;
DataGridAccImpl.enableAccessibility();
Attivare l'accessibilità per il componente una sola volta, indipendentemente dal numero di istanze del componente. Per ulteriori informazioni, vedete il Capitolo 18, “Creazione di contenuto accessibile”, nella guida
Uso di Flash
.
Parametri del componente DataGrid
Per ogni istanza del componente DataGrid potete impostare i seguenti parametri di creazione nella finestra di ispezione Proprietà o nella finestra di ispezione dei componenti:
allowMultipleSelection
,
editable
,
headerHeight
,
horizontalLineScrollSize
,
horizontalPageScrollSize
,
horizontalScrolllPolicy
,
resizableColumns
,
rowHeight
,
showHeaders
,
verticalLineScrollSize
,
verticalPageScrollSize
e
verticalScrollPolicy
. Ciascuno di questi parametri ha una proprietà ActionScript corrispondente con lo stesso nome. Per informazioni sui valori che potete impostare per questi parametri, vedete la classe DataGrid nella
Guida di riferimento di ActionScript 3.0
per Flash Professional
.
Creare un'applicazione con il componente DataGrid
Per creare un'applicazione con il componente DataGrid, è necessario per prima cosa determinare da dove provengono i dati. I dati provengono solitamente da un Array e possono essere inseriti in una griglia mediante l'impostazione della proprietà
dataProvider
. Potete inoltre usare i metodi delle classi DataGrid e DataGridColumn per aggiungere i dati alla griglia.
Usare un fornitore di dati locale con un componente DataGrid:
Nell'esempio viene creato un componente DataGrid per visualizzare la lista dei giocatori di una squadra di softball. La lista viene definita in un Array (
aRoster
) che viene assegnato alla proprietà
dataProvider
di DataGrid.
-
In Flash, selezionate File > Nuovo, quindi selezionate File Flash (ActionScript 3.0).
-
Trascinate il componente DataGrid dal pannello Componenti allo stage.
-
Nella finestra di ispezione Proprietà, inserite
aDg
come nome di istanza.
-
Aprite il pannello Azioni, selezionate il fotogramma 1 nella linea temporale principale, quindi immettete il codice ActionScript seguente:
import fl.data.DataProvider;
bldRosterGrid(aDg);
var aRoster:Array = new Array();
aRoster = [
{Name:"Wilma Carter", Bats:"R", Throws:"R", Year:"So", Home: "Redlands, CA"},
{Name:"Sue Pennypacker", Bats:"L", Throws:"R", Year:"Fr", Home: "Athens, GA"},
{Name:"Jill Smithfield", Bats:"R", Throws:"L", Year:"Sr", Home: "Spokane, WA"},
{Name:"Shirley Goth", Bats:"R", Throws:"R", Year:"Sr", Home: "Carson, NV"},
{Name:"Jennifer Dunbar", Bats:"R", Throws:"R", Year:"Fr", Home: "Seaside, CA"},
{Name:"Patty Crawford", Bats:"L", Throws:"L", Year:"Jr", Home: "Whittier, CA"},
{Name:"Angelina Davis", Bats:"R", Throws:"R", Year:"So", Home: "Odessa, TX"},
{Name:"Maria Santiago", Bats:"L", Throws:"L", Year:"Sr", Home: "Tacoma, WA"},
{Name:"Debbie Ferguson", Bats:"R", Throws:"R", Year: "Jr", Home: "Bend, OR"},
{Name:"Karen Bronson", Bats:"R", Throws:"R", Year: "Sr", Home: "Billings, MO"},
{Name:"Sylvia Munson", Bats:"R", Throws:"R", Year: "Jr", Home: "Pasadena, CA"},
{Name:"Carla Gomez", Bats:"R", Throws:"L", Year: "Sr", Home: "Corona, CA"},
{Name:"Betty Kay", Bats:"R", Throws:"R", Year: "Fr", Home: "Palo Alto, CA"},
];
aDg.dataProvider = new DataProvider(aRoster);
aDg.rowCount = aDg.length;
function bldRosterGrid(dg:DataGrid){
dg.setSize(400, 300);
dg.columns = ["Name", "Bats", "Throws", "Year", "Home"];
dg.columns[0].width = 120;
dg.columns[1].width = 50;
dg.columns[2].width = 50;
dg.columns[3].width = 40;
dg.columns[4].width = 120;
dg.move(50,50);
};
La funzione
bldRosterGrid()
imposta le dimensioni del componente DataGrid e definisce l'ordine delle colonne e le relative dimensioni.
-
Selezionare Controllo > Prova filmato.
Specificare le colonne e aggiungere l'ordinamento di un componente DataGrid in un'applicazione
Potete fare clic sull'intestazione di una colonna per ordinare il contenuto del componente in ordine decrescente in base ai valori di tale colonna.
Nell'esempio seguente viene usato il metodo
addColumn()
per aggiungere le istanze DataGridColumn a un componente DataGrid. Le colonne rappresentano i nomi dei giocatori e i relativi punteggi. Nell'esempio viene anche impostata la proprietà
sortOptions
per specificare le opzioni di ordinamento per ciascuna colonna:
Array.CASEINSENSITIVE
per la colonna Name e
Array.NUMERIC
per la colonna Score. Le dimensioni di DataGrid vengono definite nel modo appropriato impostando la lunghezza in base al numero di colonne e la larghezza su 200.
-
In Flash, selezionate File > Nuovo, quindi selezionate File Flash (ActionScript 3.0).
-
Trascinate il componente DataGrid dal pannello Componenti allo stage.
-
Nella finestra di ispezione Proprietà, inserite
aDg
come nome di istanza.
-
Aprite il pannello Azioni, selezionate il fotogramma 1 nella linea temporale principale, quindi immettete il codice ActionScript seguente:
import fl.controls.dataGridClasses.DataGridColumn;
import fl.events.DataGridEvent;
import fl.data.DataProvider;
// Create columns to enable sorting of data.
var nameDGC:DataGridColumn = new DataGridColumn("name");
nameDGC.sortOptions = Array.CASEINSENSITIVE;
var scoreDGC:DataGridColumn = new DataGridColumn("score");
scoreDGC.sortOptions = Array.NUMERIC;
aDg.addColumn(nameDGC);
aDg.addColumn(scoreDGC);
var aDP_array:Array = new Array({name:"clark", score:3135}, {name:"Bruce", score:403}, {name:"Peter", score:25})
aDg.dataProvider = new DataProvider(aDP_array);
aDg.rowCount = aDg.length;
aDg.width = 200;
-
Selezionare Controllo > Prova filmato.
Creare l'istanza di un componente DataGrid mediante ActionScript
Nell'esempio seguente viene creato un componente DataGrid mediante ActionScript che viene compilato con un Array di nomi di giocatori e punteggi.
-
Create un nuovo documento Flash (ActionScript 3.0).
-
Trascinate il componente DataGrid dal pannello Componenti al pannello Libreria del documento corrente.
In questo modo, il componente viene aggiunto alla libreria, ma non è visibile nel documento.
-
Aprite il pannello Azioni, selezionate il fotogramma 1 nella linea temporale principale, quindi immettete il codice ActionScript seguente:
import fl.controls.DataGrid;
import fl.data.DataProvider;
var aDg:DataGrid = new DataGrid();
addChild(aDg);
aDg.columns = [ "Name", "Score" ];
aDg.setSize(140, 100);
aDg.move(10, 40);
Questo codice crea l'istanza DataGrid, quindi ridimensiona e posiziona la griglia.
-
Create un array, aggiungete i dati e identificate l'array come fornitore di dati per il componente DataGrid:
var aDP_array:Array = new Array();
aDP_array.push({Name:"Clark", Score:3135});
aDP_array.push({Name:"Bruce", Score:403});
aDP_array.push({Name:"Peter", Score:25});
aDg.dataProvider = new DataProvider(aDP_array);
aDg.rowCount = aDg.length;
-
Selezionare Controllo > Prova filmato.
Caricare un file XML in un componente DataGrid
Nell'esempio seguente viene usata la classe DataGridColumn per creare le colonne del componente DataGrid, che viene compilato passando un oggetto XML come parametro
value
della funzione di costruzione
DataProvider()
.
-
L'uso di un editor di testo crea un file XML con i seguenti dati e lo salva come
team.xml
nella stessa cartella in cui verrà salvato il file FLA.
<team>
<player name="Player A" avg="0.293" />
<player name="Player B" avg="0.214" />
<player name="Player C" avg="0.317" />
</team>
-
Create un nuovo documento Flash (ActionScript 3.0).
-
Nel pannello Componenti, fare doppio clic sul componente DataGrid per aggiungerlo allo stage.
-
Nella finestra di ispezione Proprietà, inserite
aDg
come nome di istanza.
-
Aprite il pannello Azioni, selezionate il fotogramma 1 nella linea temporale principale, quindi immettete il codice ActionScript seguente:
import fl.controls.dataGridClasses.DataGridColumn;
import fl.data.DataProvider;
import flash.net.*;
import flash.events.*;
var request:URLRequest = new URLRequest("team.xml");
var loader:URLLoader = new URLLoader;
loader.load(request);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
function loaderCompleteHandler(event:Event):void {
var teamXML:XML = new XML(loader.data);
var nameCol:DataGridColumn = new DataGridColumn("name");
nameCol.headerText = "Name";
nameCol.width = 120;
var avgCol:DataGridColumn = new DataGridColumn("avg");
avgCol.headerText = "Average";
avgCol.width = 60;
var myDP:DataProvider = new DataProvider(teamXML);
aDg.columns = [nameCol, avgCol];
aDg.width = 200;
aDg.dataProvider = myDP;
aDg.rowCount = aDg.length;
}
-
Selezionare Controllo > Prova filmato.
|
|
|