U kunt een component DataGrid horizontaal en verticaal aanpassen tijdens het ontwerpen en bij uitvoering. Selecteer tijdens het ontwerpen de component in het werkgebied en gebruik het gereedschap Vrije transformatie of een van de opdrachten Wijzigen > Transformeren. Bij uitvoering kunt u de methode
setSize()
of de toepasselijke eigenschappen gebruiken, zoals
width
,
height
,
scaleX
en
scaleY
. Als er geen horizontale schuifbalk is, wordt de kolombreedte proportioneel aangepast. Wanneer de grootte van een kolom (en dus cel) wordt aangepast, kan de tekst in de cellen worden afgekapt.
Stijlen gebruiken met de component DataGrid
U kunt stijleigenschappen instellen om de weergave van een component DataGrid te wijzigen. De component DataGrid overerft stijlen van de component List. (Zie
Stijlen gebruiken met de component List
.)
Stijlen instellen voor een afzonderlijke kolom
Een object DataGrid kan meerdere kolommen bevatten en u kunt verschillende celrenderers opgeven voor elke kolom. Elke kolom van een DataGrid wordt vertegenwoordigd door een objecDataGridColumn en de klasse DataGridColumn bevat de eigenschap
cellRenderer
waarvoor u de CellRenderer voor de kolom kunt definiëren.
-
Maak een nieuw Flash-document (ActionScript 3.0).
-
Sleep de component DataGrid naar het deelvenster Bibliotheek.
-
Voeg de volgende code toe aan het deelvenster Handelingen in frame 1 van de tijdlijn. Met deze code wordt een DataGrid gemaakt met een lange reeks tekst in de derde kolom. Uiteindelijk wordt de eigenschap
cellRenderer
van de kolom inggsteld op de naam van een celrenderer die een cel van meerdere regels rendeert.
/* This is a simple cell renderer example.It invokes
the MultiLineCell cell renderer to display a multiple
line text field in one of a DataGrid's columns. */
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;
import fl.data.DataProvider;
import fl.controls.ScrollPolicy;
// Create a new DataGrid component instance.
var aDg:DataGrid = new DataGrid();
var aLongString:String = "An example of a cell renderer class that displays a multiple line TextField"
var myDP:Array = new Array();
myDP = [{firstName:"Winston", lastName:"Elstad", note:aLongString, item:100},
{firstName:"Ric", lastName:"Dietrich", note:aLongString, item:101},
{firstName:"Ewing", lastName:"Canepa", note:aLongString, item:102},
{firstName:"Kevin", lastName:"Wade", note:aLongString, item:103},
{firstName:"Kimberly", lastName:"Dietrich", note:aLongString, item:104},
{firstName:"AJ", lastName:"Bilow", note:aLongString, item:105},
{firstName:"Chuck", lastName:"Yushan", note:aLongString, item:106},
{firstName:"John", lastName:"Roo", note:aLongString, item:107},
];
// Assign the data provider to the DataGrid to populate it.
// Note: This has to be done before applying the cellRenderers.
aDg.dataProvider = new DataProvider(myDP);
/* Set some basic grid properties.
Note: The data grid's row height should reflect
the number of lines you expect to show in the multiline cell.
The cell renderer wil size to the row height.
About 40 for 2 lines or 60 for 3 lines.*/
aDg.columns = ["firstName", "lastName", "note", "item"];
aDg.setSize(430,190);
aDg.move(40,40);
aDg.rowHeight = 40;// Allows for 2 lines of text at default text size.
aDg.columns[0].width = 70;
aDg.columns[1].width = 70;
aDg.columns[2].width = 230;
aDg.columns[3].width = 60;
aDg.resizableColumns = true;
aDg.verticalScrollPolicy = ScrollPolicy.AUTO;
addChild(aDg);
// Assign cellRenderers.
var col3:DataGridColumn = new DataGridColumn();
col3 = aDg.getColumnAt(2);
col3.cellRenderer = MultiLineCell;
-
Sla het FLA-bestand op als MultiLineGrid.fla.
-
Maak een nieuw ActionScript-bestand.
-
Kopieer de volgende ActionScript-code in het Script-venster:
package {
import fl.controls.listClasses.CellRenderer;
public class MultiLineCell extends CellRenderer
{
public function MultiLineCell()
{
textField.wordWrap = true;
textField.autoSize = "left";
}
override protected function drawLayout():void {
textField.width = this.width;
super.drawLayout();
}
}
}
-
Sla het ActionScript-bestand op als MultiLineCell.as in dezelfde map als u de MultiLineGrid.fla hebt opgeslagen.
-
Keer terug naar de toepassing MultiLineGrid.fla en selecteer Besturing > Film Testen.
De DataGrid moet er als volgt uitzien:
DataGrid voor de toepassing MultiLineGrid.fla
Kopstijlen instellen
U kunt de tekststijl voor een koprij instellen met behulp van de stijl
headerTextFormat
. In het volgende voorbeeld wordt het object TextFormat gebruikt om de stijl
headerTextFormat
in te stellen op het lettertype Arial, de kleur rood, tekengrootte 14 en cursief.
-
Maak een nieuw document van het type Flash-bestand (ActionScript 3.0).
-
Sleep een component DataGrid naar het werkgebied en geef deze de instantienaam
aDg
.
-
Open het deelvenster Handelingen, selecteer frame 1 van de hoofdtijdlijn en voer de volgende code in:
import fl.data.DataProvider;
import fl.controls.dataGridClasses.DataGridColumn;
var myDP:Array = new Array();
myDP = [{FirstName:"Winston", LastName:"Elstad"},
{FirstName:"Ric", LastName:"Dietrich"},
{FirstName:"Ewing", LastName:"Canepa"},
{FirstName:"Kevin", LastName:"Wade"},
{FirstName:"Kimberly", LastName:"Dietrich"},
{FirstName:"AJ", LastName:"Bilow"},
{FirstName:"Chuck", LastName:"Yushan"},
{FirstName:"John", LastName:"Roo"},
];
// Assign the data provider to the DataGrid to populate it.
// Note: This has to be done before applying the cellRenderers.
aDg.dataProvider = new DataProvider(myDP);
aDg.setSize(160,190);
aDg.move(40,40);
aDg.columns[0].width = 80;
aDg.columns[1].width = 80;
var tf:TextFormat = new TextFormat();
tf.size = 14;
tf.color = 0xff0000;
tf.italic = true;
tf.font = "Arial"
aDg.setStyle("headerTextFormat", tf);
-
Selecteer Besturing > Film testen om de toepassing uit te voeren.
Skins gebruiken met de component DataGrid
De component DataGrid gebruikt de volgende skins om zijn visuele status te vertegenwoordigen:
Skins voor een DataGrid
De skin CellRenderer is de skin die wordt gebruikt voor de cel met de hoofdtekst van de DataGrid, terwijl de skin HeaderRenderer wordt gebruikt voor de koprij. De volgende procedure wijzigt de achtergrondkleur van de koprij maar u kunt hetzelfde proces gebruiken om de achtergrondkleur van de cel van de hoofdtekst van de DataGrid wijzigen door de skin CellRenderer te bewerken.
-
Maak een nieuw Flash-document (ActionScript 3.0).
-
Sleep een component DataGrid naar het werkgebied en geef deze de instantienaam
aDg
.
-
Dubbelklik op de component om het palet met skins te openen.
-
Stel het zoombesturingselement in op 400% om de pictogrammen te vergroten voor bewerking.
-
Dubbelklik op de skin HeaderRenderer om het palet van skins HeaderRenderer te openen.
-
Dubbelklik op Up_Skin om deze in de symboolbewerkmodus te openen en klik op de achtergrond totdat deze is geselecteerd en de kleurkiezer voor de vulkleur wordt weergegeven in Eigenschapcontrole.
-
Selecteer kleur #00CC00 in de kleurkiezer voor de vulkleur om deze toe te passen op de achtergrond van de skin Up_Skin van HeaderRenderer.
-
Klik op de knop Terug links van de bewerkbalk boven in het werkgebied om terug te gaan naar de documentbewerkmodus.
-
Voeg de volgende code in het deelvenster Handelingen toe aan frame 1 van de tijdlijn om gegevens aan de DataGrid toe te voegen:
import fl.data.DataProvider;
bldRosterGrid(aDg);
var aRoster:Array = new Array();
aRoster = [
{Name:"Wilma Carter",Home: "Redlands, CA"},
{Name:"Sue Pennypacker",Home: "Athens, GA"},
{Name:"Jill Smithfield",Home: "Spokane, WA"},
{Name:"Shirley Goth", Home: "Carson, NV"},
{Name:"Jennifer Dunbar",Home: "Seaside, CA"}
];
aDg.dataProvider = new DataProvider(aRoster);
function bldRosterGrid(dg:DataGrid){
dg.setSize(400, 130);
dg.columns = ["Name", "Home"];
dg.move(50,50);
dg.columns[0].width = 120;
dg.columns[1].width = 120;
};
-
Selecteer Besturing > Film testen om de toepassing te testen.
De DataGrid wordt weergegeven met een groene achtergrond in de koprij, zoals in de volgende afbeelding wordt getoond.
DataGrid met aangepaste achtergrond van de koprij
|
|
|