首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex DataGrid编者单元格并获取新的值

2012-11-09 
flex DataGrid编辑单元格并获取新的值mx:Application xmlns:mxhttp://www.adobe.com/2006/mxml layout

flex DataGrid编辑单元格并获取新的值

<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 tt:String;
???? var num:Number=Number(tt);
???? if(isNaN(num)){
????? event.preventDefault();//恢复本来数据
????? lbl.text="this is not num!";
???? }else{
????? lbl.text=tt;
????? /*=======操作数据和数据库打交道=========*/
????? /*省略*/
???? }
??? }
?? }
???]]>
??
</mx:Script>
</mx:Application>

原本我用的是AdvancedDataGrid 要用AdvancedDataGridEvent
private function editHandle(event:AdvancedDataGridEvent):void{
}

除了这样写,可以写成监听的形式么?

热点排行