Posted by: Stephen Gray on: 15 September, 2008
I just remembered that I had trouble finding out what I could access with this event handler function. Sure it was easy to find out when the event is dispatched, but how can I access the new field value edited by the user? How do I access the previous value?
So this is just a simple example showing you that. This also applies to the normal DataGrid and standard list controls.
The itemEditEnd event is dispatched (it’s in the name) when a user finishes editing a cell so this is pretty much the best time to save the user’s changes to that field/row.
Here’s our function:
protected function saveChange(event:AdvancedDataGridEvent):void
{
/**
* use event.dataField to get the edited field name
*/
var field:String = event.dataField;
/**
* i'm using the following line to get the 'id' of the row being edited
* because i passed an 'id' field through from my dataProvider.
*/
var selectedID:String = event.currentTarget.selectedItem.id.toString();
/**
* use the itemEditorInstance to get the newly edited value but retrieve
* the previous value from the existing grid data. i'm using the default
* textinput itemRenderer so I can retrieve the new value using the
* itemEditInstance's 'text' property.
*/
var newValue:String = event.currentTarget.itemEditorInstance.text;
var prevValue:String = ProductPersonalisationList.selectedItem[event.dataField];
// run a http service call or something to save the change or validate the data
}
U rock dude………………………..
Awesome post. This saved me so much time. Thanks!
THANK YOU VERY MUCH!!!. You saved my day.
12 February, 2009 at 10:13 am
Thanks for this post.
event.currentTarget.itemEditorInstance.text was exactly what I was after.