Met de component DataGrid kunt u gegevens in een raster van rijen en kolommen weergeven. Deze gegevens worden getekend op basis van een array of extern XML-bestand dat u in een array voor de DataProvider kunt parseren. De component DataGrid bevat verticaal en horizontaal schuiven, gebeurtenisondersteuning (inclusief ondersteuning voor bewerkbare cellen) en sorteermogelijkheden.
U kunt de grootte van kenmerken wijzigen en kenmerken zoals het lettertype, de kleur en de randen van kolommen in een raster aanpassen. U kunt een aangepaste filmclip als een celrenderer voor een kolom in een raster gebruiken. (Een celrenderer geeft de inhoud van een cel weer.) U kunt de schuifbalken uitschakelen en de methoden DataGrid gebruiken om een weergavestijl van één pagina te maken. Zie de klasse DataGridColumn in de
Naslaggids voor ActionScript 3.0
voor Adobe Flash Professional CS5
voor meer informatie over aanpassingen.
Gebruikersinteractie met de component DataGrid
U kunt de muis en het toetsenbord gebruiken om met een component DataGrid te communiceren.
Als de eigenschap
sortableColumns
en de eigenschap
sortable
van de kolom beide
true
zijn, zorgt het klikken op een kolomkop ervoor dat de gegevens op de waarden van de kolom worden gesorteerd. U kunt de mogelijkheid tot het sorteren van een individuele kolom uitschakelen door de eigenschap
sortable
in te stellen op
false
.
Als de eigenschap
resizableColumns
de waarde
true
heeft, kunt u de grootte van kolommen aanpassen door de kolomscheiders in de koprij te slepen.
Als er op een bewerkbare cel wordt geklikt, krijgt die cel focus en als er op een niet bewerkbare cel wordt geklikt heeft dit geen effect op de focus. Een individuele cel is bewerkbaar wanneer de eigenschap
DataGrid.editable
en
DataGridColumn.editable
van de cel
true
zijn.
Zie de klassen DataGrid en DataGridColumn in de
Naslaggids voor ActionScript 3.0 voor Adobe Flash Professional CS5
voor meer informatie.
Wanneer een instantie DataGrid focus heeft doordat erop is geklikt of doordat er met Tab naartoe is gegaan, kunt u de volgende toetsen gebruiken om de instantie te beheren:
Toets
|
Beschrijving
|
Pijl-omlaag
|
Wanneer een cel wordt bewerkt, schuift het invoegpunt naar het einde van de celtekst. Als een cel niet bewerkbaar is, handelt Pijl-omlaag het selecteren op dezelfde manier af als de component List.
|
Pijl-omhoog
|
Wanneer een cel wordt bewerkt, schuift het invoegpunt naar het begin van de celtekst. Als een cel niet bewerkbaar is, handelt Pijl-omhoog het selecteren op dezelfde manier af als de component List.
|
Shift+Pijl-omhoog/Pijl-omlaag
|
Als de DataGrid niet bewerkbaar is en als
allowMultipleSelection
de waarde
true
heeft, worden rijen opeenvolgend geselecteerd. Als u met de tegenovergestelde pijl de richting omkeert heft u de selectie van de geselecteerde rijen op totdat u de beginrij passeert, waarop de rijen in die richting worden geselecteerd.
|
Shift+klikken
|
Als
allowMultipleSelection
true
is, worden alle rijen tussen de geselecteerde rij en het huidige invoegteken (gemarkeerde cel) geselecteerd.
|
Ctrl+klikken
|
Als
allowMultipleSelection
true
is, worden alle additionele rijen geselecteerd. Ze hoeven niet opeenvolgend te zijn.
|
Pijl-rechts
|
Wanneer een cel wordt bewerkt, schuift het invoegpunt een teken naar rechts. Als een cel niet bewerkbaar is, heeft Pijl-rechts geen effect.
|
Pijl-links
|
Wanneer een cel wordt bewerkt, schuift het invoegpunt een teken naar links. Als een cel niet bewerkbaar is, heeft Pijl-links geen effect.
|
Startpagina
|
Hiermee wordt de eerste rij in de DataGrid geselecteerd.
|
End
|
Hiermee wordt de laatste rij in de DataGrid geselecteerd.
|
PageUp
|
Hiermee wordt de eerste rij op een pagina in de DataGrid geselecteerd. Een pagina bestaat uit het aantal rijen dat de DataGrid zonder schuiven kan weergeven.
|
PageDown
|
Hiermee wordt de laatste rij op een pagina in de DataGrid geselecteerd. Een pagina bestaat uit het aantal rijen dat de DataGrid zonder schuiven kan weergeven.
|
Return/Enter/Shift+Enter
|
Wanneer een cel bewerkbaar is, wordt de wijziging doorgevoerd en wordt het invoegpunt naar een cel in dezelfde kolom, op de volgende rij geplaatst (boven of beneden, afhankelijk van de instelling van de Shift-toets).
|
Shift+Tab/Tab
|
Als de DataGrid bewerkbaar is, wordt de focus naar het volgende/vorige item verplaatst totdat het einde van de kolom wordt bereikt en wordt vervolgens naar de vorige/volgende rij verplaatst totdat de eerste of laatste cel wordt bereikt. Als de eerste cel is geselecteerd, verplaatst Shift+Tab de focus naar het vorige besturingselement. Als de laatste cel is geselecteerd, verplaatst Tab de focus naar het volgende besturingselement.
Als de DataGrid niet bewerkbaar is, wordt de focus naar het vorige/volgende besturingselement verplaatst.
|
U kunt de component DataGrid gebruiken als de basis voor verschillende soorten toepassingen die met gegevens werken. U kunt eenvoudig een tabellarisch opgemaakt gegevensaanzicht weergeven, maar u kunt ook de celrenderermogelijkheden gebruiken om geavanceerde en bewerkbare gebruikersinterfaceonderdelen te maken. De component DataGrid wordt doorgaans voor de volgende doeleinden gebruikt:
Wanneer u een toepassing ontwerpt met de component DataGrid, is het nuttig om het ontwerp van de component List te begrijpen omdat de klasse DataGrid de klasse SelectableList uitbreidt. Zie de klassen SelectableList en List in de
Naslaggids voor ActionScript 3.0 voor Adobe Flash Professional CS5
voor meer informatie over de klasse SelectableList en de component List.
Wanneer u de component DataGrid aan een toepassing toevoegt, kunt u deze toegankelijk maken voor een schermlezer door de volgende ActionScript-coderegels toe te voegen:
import fl.accessibility.DataGridAccImpl;
DataGridAccImpl.enableAccessibility();
U stelt toegankelijkheid voor een component slechts eenmaal in, ongeacht het aantal instanties van de component. Raadpleeg Hoofdstuk 18, ‘Toegankelijke inhoud maken’ in
Flash gebruiken
voor meer informatie.
Parameters van de component DataGrid
U kunt de volgende ontwerpparameters in Eigenschapcontrole of Componentcontrole voor elke componentinstantie DataGrid instellen:
allowMultipleSelection
,
editable
,
headerHeight
,
horizontalLineScrollSize
,
horizontalPageScrollSize
,
horizontalScrolllPolicy
,
resizableColumns
,
rowHeight
,
showHeaders
,
verticalLineScrollSize
,
verticalPageScrollSize
en
verticalScrollPolicy
. Elk van deze parameters heeft een bijbehorende ActionScript-eigenschap met dezelfde naam. Zie de klasse DataGrid in de
Naslaggids voor ActionScript 3.0
voor Adobe Flash Professional CS5
voor informatie over de mogelijk waarden voor deze parameters.
Een toepassing maken met de component DataGrid
Als u een toepassing met de component DataGrid wilt maken, moet u eerst bepalen waar de gegevens vandaan komen. Doorgaans komen de gegevens uit een Array, die u in het raster kunt opnemen door de eigenschap
dataProvider
in te stellen. U kunt ook de methoden van de klassen DataGrid en DataGridColumn gebruiken om gegevens aan het raster toe te voegen.
Een lokale gegevensaanbieder met een component DataGrid gebruiken:
In dit voorbeeld wordt een DataGrid gemaakt om het rooster van een softbalteam weer te geven. Het voorbeeld definieert het rooster in een Array (
aRoster
) en wijst deze toe aan de eigenschap
dataProvider
van de DataGrid.
-
Selecteer in Flash Bestand > Nieuw en selecteer vervolgens Flash-bestand (ActionScript 3.0).
-
Sleep de component DataGrid van het deelvenster Componenten naar het werkgebied.
-
Voer in Eigenschapcontrole de instantienaam
aDg
in.
-
Open het deelvenster Handelingen, selecteer frame 1 van de hoofdtijdlijn en voeg de volgende ActionScript-code toe:
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);
};
De functie
functie bldRosterGrid()
stelt de grootte van DataGrid in en stelt de kolomvolgorde en de grootte van de kolommen in.
-
Selecteer Besturing > Film testen.
In een toepassing kolommen opgeven en sorteren toevoegen voor een component DataGrid
U kunt op elke kolomkop klikken om de inhoud van DataGrid op basis van de waarden van de kolom in aflopende volgorde te sorteren.
In het volgende voorbeeld wordt de methode
addColumn()
gebruikt om instanties van DataGridColumn aan een DataGrid toe te voegen. De kolommen vertegenwoordigen de namen van spelers en hun scores. In dit voorbeeld wordt bovendien de eigenschap
sortOptions
ingesteld om de sorteeropties voor elke kolom op te geven:
Array.CASEINSENSITIVE
voor de kolom Naam en
Array.NUMERIC
voor de kolom Score. Het wijzigt vervolgens de grootte van DataGrid door de lengte op het aantal rijen in te stellen en de breedte op 200.
-
Selecteer in Flash Bestand > Nieuw en selecteer vervolgens Flash-bestand (ActionScript 3.0).
-
Sleep de component DataGrid van het deelvenster Componenten naar het werkgebied.
-
Voer in Eigenschapcontrole de instantienaam
aDg
in.
-
Open het deelvenster Handelingen, selecteer frame 1 van de hoofdtijdlijn en voeg de volgende ActionScript-code toe:
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;
-
Selecteer Besturing > Film testen.
Een componentinstantie DataGrid maken met ActionScript
In het volgende voorbeeld wordt met ActionScript een DataGrid gemaakt en aangevuld met een Array van spelernamen en scores.
-
Maak een nieuw Flash-document (ActionScript 3.0).
-
Sleep een component DataGrid van het deelvenster Componenten naar het deelvenster Bibliotheek van het huidige document.
Hiermee voegt u de component aan de bibliotheek toe, maar de component wordt hierdoor niet zichtbaar in de toepassing.
-
Open het deelvenster Handelingen, selecteer frame 1 van de hoofdtijdlijn en voeg de volgende ActionScript-code toe:
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);
Deze code maakt een instantie DataGrid en past vervolgens de grootte van het raster aan en positioneert deze.
-
Maak een array, voeg gegevens aan de array toe en identificeer de array als de gegevensaanbieder voor 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;
-
Selecteer Besturing > Film testen.
Een DataGrid met een XML-bestand laden
Het volgende voorbeeld gebruikt de klasse DataGridColumn om kolommen voor DataGrid te maken. Het vult de DataGrid door een object XML door te geven als de parameter
value
van de constructor
DataProvider()
.
-
Gebruik een teksteditor om een XML-bestand te maken met de volgende gegevens en sla het bestand op onder de naam
team.xml
in dezelfde map waarin u het FLA-bestand opslaat.
<team>
<player name="Player A" avg="0.293" />
<player name="Player B" avg="0.214" />
<player name="Player C" avg="0.317" />
</team>
-
Maak een nieuw Flash-document (ActionScript 3.0).
-
Dubbelklik in het deelvenster Componenten op de component DataGrid om deze aan het werkgebied toe te voegen.
-
Voer in Eigenschapcontrole de instantienaam
aDg
in.
-
Open het deelvenster Handelingen, selecteer frame 1 van de hoofdtijdlijn en voeg de volgende ActionScript-code toe:
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;
}
-
Selecteer Besturing > Film testen.
|
|
|