问题:
在使用DataGrid进行数据编辑时, 我们不可避免的需要对数据的输入进行检验, 修正等错误.
解决方法:
监听DataGrid的editEnd事件:DataGridEvent.ITEM_EDIT_END.改事件中包含有正在编辑的DataGridColumn[列名], 编辑前的数据, 编辑结束后的数据, 等等
具体实现:
1. 获得当前编辑的DataGridColumn; 2. 获得编辑前后的数据;
- /**
- * 响应EditEnd
- * 获得当前编辑的DataGridColumn; 2. 获得编辑前后的数据;
- */
- private function onEditEnd(e:DataGridEvent):void {
- var beingEditField:String = e.dataField; //获得当前列的dataField
- if(beingEditField == "locale") {
- var oldLocal:String = e.itemRenderer.data.locale;
- var newLocale:String = _dataGrid.itemEditorInstance[columnLocale.editorDataField]; //hashMap Key is String
- Alert.show("您正在编辑列: " + beingEditField + " 将: " + oldLocal + " 编辑为: " + newLocale); //在此处可以加入需要的数据验证,或是自动修正等等功能.可以使用 e.preventDefault()来阻止默认行为
- }
- }......
- }