求助,flex4中DataGrid修改值问题
flex4中利用itemEditEnd事件修改DataGrid的值时候,使用itemEditEnd事件,但是当使用this.dg.dataProvider;获得修改后的值时候,第一次总是得到未修改的值,用Alert调试后,发现只有第一次是未修改的值,之后都是已修改的值,后来采用this.dg.itemEditorInstance;后还是一样,求大神解释
代码 <mx:DataGrid x="10" y="0" id="dg" editable="true" itemEditEnd="dg_upda(event)" >
事件代码
protected function dg_update(event:DataGridEvent):void
{
var ll:Object = this.dg.dataProvider;
var o:Office =ll[event.rowIndex];
Alert.show(this.dg.selectedItem.valueOf());
ofbiz.update(o);
ofbiz.findAll();
} flex datagrid --------------------编程问答-------------------- 自己顶,顶起来 --------------------编程问答-------------------- 同问,求大神解决啊
需要取得修改后的数据插入到数据库中,不胜感激 --------------------编程问答-------------------- 楼主你好:
用Mx:DataGrid 的 itemFocusOut方法取代itemEditEnd 方法就行了,贴一段我的代码(现在行了)
但是存在一个问题:弹出窗口的个数令我很烦,失焦一次怎么会弹出两个窗口(如果点击另一行则会不断的弹出窗口),我也想问一个问题:
能不能限制编辑数据的类型,比如说只能输入数字;
----------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600">
<fx:Declarations>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.DataGridEvent;
[Bindable]
private var dp:Array=
[{name:"James",salary:3000},
{name:"Bosh",salary:255},
{name:"Vade",salary:200}];
private function getInfo(e:DataGridEvent):void{
var sal:int=e.target.selectedItem.salary;
Alert.show(sal+"");
}
]]>
</fx:Script>
<s:Panel width="100%" height="100%">
<s:HGroup width="100%" height="50%">
<mx:DataGrid id="dg" width="100%" height="100%" dataProvider="{dp}" editable="true"
itemFocusOut="getInfo(event)">
<mx:columns>
<mx:DataGridColumn editable="false" dataField="name" headerText="姓名"/>
<mx:DataGridColumn editable="true" dataField="salary" headerText="薪水">
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</s:HGroup>
</s:Panel>
</s:Application>
------------------------------------------------------------------------------------
补充:Java , Web 开发