PDA

Volledige versie bekijken : datagrid


Orion
%Europe/Berlin %439 %2005, 11:32
Het lukt me al om een variabel aantal kolommen toe te voegen aan een datagrid maar nog niet om nadien velden toe te voegen aan deze kolommen omdat de kolomnamen variabel zijn. (ik haal ze op uit xml)

_root.createClassObject(mx.controls.DataGrid,"users",0);
for(i=0;i<root.childNodes[0].childNodes[0].childNodes.length;i++) {
users.addColumn(root.childNodes[0].childNodes[0].childNodes[i].nodeName);
}
Weet iemand een goede manier ?

alvast bedankt,
orion

Orion
%Europe/Berlin %468 %2005, 12:15
Nu lukt het mij enkel op deze manier.
_root.createClassObject(mx.controls.DataGrid,"users",0);
users.addItem({username:"orion", password:"test", email:"orion@raised4design.com"});
Hierdoor zit ik dus met de beperking dat mijn kolommen telkens de zelfde naam moet hebben.

Als een headername met actionscript wordt aangepast zou ik ook data moeten kunnen toevoegen aan die kolom.

Iemand die een oplossing kent ?

..Orion

Orion
%Europe/Berlin %415 %2005, 10:58
ik heb zelf staan zoeken achter een oplossing en uiteindelijk ook één gevonden.
het is mss niet de beste manier maar het werkt wel...
als er iemand nog iets op aan te merken heeft, laat het mij gerust weten.

import mx.controls.gridclasses.DataGridColumn;
_root.createClassObject(mx.controls.DataGrid,"users",depth);
users.move(logout.x, _root.height - logout.bottom + 50);
users.resizableColumns = true;
users.sortableColumns = true;
users.setSize(1000,300);
users.hScrollPolicy = "auto";
users.multipleSelection = true;

info = 0;
//per eigenschap van een user wordt er een kolom aangemaakt
for(i=0;i<root.childNodes[info].childNodes[0].childNodes.length;i++) { //voor elke eigenschap-childnode in het xml object
column = new DataGridColumn("column"+i);
column.headerText = root.childNodes[info].childNodes[0].childNodes[i].nodeName;
users.addColumn(column);
}
//per user wordt er een rij aangemaakt
for(i=0;i<root.childNodes[info].childNodes.length;i++) { //voor elke user-childnode in het xml object
users.addItem({column0:" "});
//per rij worden de verschillende kolommen ingevuld (per user worden de eigenschappen ingevuld)
for(j=0;j<root.childNodes[info].childNodes[i].childNodes.length;j++) {
new_value = root.childNodes[info].childNodes[i].childNodes[j].firstChild;
old_value = users.editField(i, "column"+j, new_value);
}
}
(dit is maar een stukje van mijn script en het is gemaakt adhv mijn xml object.)

groeten,
orion