<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal"> <mx:Panel width="458" height="313" layout="absolute"> <mx:Label id="lbl" x="19" y="10" text="" width="171" height="20"/> <mx:DataGrid id="dg" x="19" y="58" dataProvider="{arr}" editable="true" itemEditEnd="editHandle(event)" horizontalGridLines="true" horizontalGridLineColor="#B9F2C9" verticalGridLineColor="#B9F2C9"> <mx:columns> <mx:DataGridColumn headerText="year" dataField="year" editable="false"/> <mx:DataGridColumn headerText="city" dataField="city" editable="false"/> <mx:DataGridColumn headerText="provice" dataField="provice" editable="false" sortable="false"/> <mx:DataGridColumn headerText="total" dataField="total"/> </mx:columns> </mx:DataGrid> </mx:Panel> <mx:Script> <!--[CDATA[ import mx.controls.dataGridClasses.DataGridColumn; import mx.events.DataGridEvent; import mx.controls.Alert; import mx.collections.ArrayCollection; [Bindable] private var arr:ArrayCollection=new ArrayCollection([ {year:2009,city:"Shanghai",provice:"上海",total:580000}, {year:2009,city:"Beijing",provice:"河北省",total:7852020}, {year:2009,city:"Nanjing",provice:"江苏省",total:895145}, {year:2009,city:"Hangzhou",provice:"浙江省",total:4132415}]); private function editHandle(event:DataGridEvent):void{ if(event.dataField=="total"){ var cols:DataGridColumn=dg.columns[event.columnIndex]; ///编辑前的值,没用到,只是想获得一下 var s:String=event.itemRenderer.data.total; //编辑后新的值 var newValue:String=dg.itemEditorInstance[cols.editorDataField]; var num:Number=Number(tt); if(isNaN(num)){ event.preventDefault();//恢复本来数据 lbl.text="this is not num!"; }else{ lbl.text=tt; /*=======操作数据和数据库打交道=========*/ /*省略*/ } } } ]]--> </mx:Script> </mx:Application>