PDA

Volledige versie bekijken : datagrid updaten


Edwin
%Europe/Berlin %680 %2005, 17:19
de fla is maar 1 keyframe lang en bevat een datagrid en een button


var myDataGrid:mx.controls.DataGrid;
myDataGrid.addColumn("name");
myDataGrid.addColumn("size");
myDataGrid.addColumn("type");
myDataGrid.addColumn("progress");

var myDP_array:Array = new Array();

myDP_array[0] = {name:"test1",size:"big",type:"green",progress:"start"};
myDP_array[1] = {name:"test2",size:"medium",type:"blue",progress:"building"};
myDP_array[2] = {name:"test3",size:"small",type:"red",progress:"waiting"};

myDataGrid.dataProvider = myDP_array;

En om te updaten:

updatebutton.addEventListener("click", updateFile);

function updateFile(event:Object):Void {
var arrayLen:Number = myDP_array.length;
for (var i:Number = 0; i < arrayLen; i++) {
myDP_array[i].progress = "blaat";
myDataGrid.redraw(true);
}
}


Nu is het probleem dat de datagrid niet wil updaten, behalve als ik op de header ervan klik om te sorteren dan worden de waarden geupdate...

iemand een ideetje?

Dauntless
%Europe/Berlin %692 %2005, 17:37
'k Weet niet of dit een 'goede' manier is, maar hij werkt :)

function updateFile(event:Object):Void {
var arrayLen:Number = myDP_array.length;
for (var i:Number = 0; i < arrayLen; i++) {
myDP_array[i].progress = "blaat";

}
myDataGrid.dataProvider = myDP_array;
}
Ook: je voert die redraw uit in een for loop, maar die for loop in z'n geheel wordt toch uitgevoerd op 1 frame. Daarom kan je die redraw() er beter buitenzetten :).

Edwin
%Europe/Berlin %706 %2005, 17:57
dankje, het werkt wel, alleen vond ik het niet echt logisch om de dataprovider nog een keer toe te kennen omdat dit al was gebeurt en ik dacht dat de datagrid ook veranderde waarden direct overnam uit de dataprovider..
iig heel erg bedankt, zat er al een tijdje op vast