i have a spark datagrid that is firing off two
GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_SAVE events for a single edit. no
popups or custom item editors are involved & it seems to happen with both the
user tabbing out or using the enter key to save the edited data. the datagrid
has only the one editable column.
everything's working as planned just that it's doubled up (i can see two rows in
the transaction table for every singe edit on the datagrid).
is listening for GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_SAVE the correct
approach? some magic i should be doing to the event or datagrid? i vaguely
recall there maybe being something on alex's blog about preventing extra events
but i'm not finding anything related (or likely not searching w/the right keyword).
thanks.
if it matters:
adding the event listener:
workOrdersDG.addEventListener(GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_SAVE,onEditSave,false);
event handler (sorry for the formatting mess):
protected function onEditSave(event:GridItemEditorEvent):void {
errMsg.text="";
var item:Object=(event.currentTarget.dataProvider).getItemAt(event.rowIndex);
var mData:String=item.meterData;
if (mData !="" && isNaN(Number(mData))) {
(event.currentTarget.dataProvider).getItemAt(event.rowIndex)[event.column.dataField]="";
(event.currentTarget.dataProvider).getItemAt(event.rowIndex)["usage"]="0";
workOrdersDG.selectedIndex=event.rowIndex;
errMsg.text="Meter data must be numeric."
} else {
if(Number(item.meterData) >=item.lastCollectedData) {
(event.currentTarget.dataProvider).getItemAt(event.rowIndex)["usage"]=Number(item.meterData)-item.lastCollectedData;
// send back to server
assetService.updateWalkOrderMeterData(item.id,item.meterData,userID);
} else
errMsg.text="Current meter data must be greater than last collected data."
}