当我在编辑dataGrid
中的单元格时,修改不会应用到dataProvider
,直到完成编辑。有没有办法让编辑时在dataProvider
中出现更改?Flex:在dataGrid cell中立即编辑编辑器
我会假设这样做的方式是继承我使用的编辑器,在这种情况下NumericStepper
,但我不知道我会怎么做。
是否有某种我需要触发的事件?
当我在编辑dataGrid
中的单元格时,修改不会应用到dataProvider
,直到完成编辑。有没有办法让编辑时在dataProvider
中出现更改?Flex:在dataGrid cell中立即编辑编辑器
我会假设这样做的方式是继承我使用的编辑器,在这种情况下NumericStepper
,但我不知道我会怎么做。
是否有某种我需要触发的事件?
如果你需要引用itemeditor以外的任何东西,我已经做到这一点的方式是通过outerDocument.somePublicVar。
所以,如果你需要引用你正在编辑的数据网格的数据提供者,你可以更新你绑定到数据网格的var,但它必须是public(我认为),或者你可以直接编辑datagrids dataprovider。
在项目编辑器中,您可以捕获更改事件并从那里更新数据提供者中的值。但请记住,最终编辑项目事件将被抛出,如果你在那里做任何处理,可能会混淆你的数据提供者。
,如果你创建自己的itemEditor/itemRenderer的,你可以这样做:
<mx:TextInput xmlns:mx="..." change="onChange(event)"
implements="mx.controls.listClasses.IDropInListItemRenderer">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
[Bindable("dataChange")] private var _listData : BaseListData;
public function get listData():BaseListData
{
return _listData;
}
public function set listData(value : BaseListData) : void
{
_listData = value;
}
private function onChange(event:Event):void
{
this.data[ (listData as DataGridListData).dataField ] = this.text;
}
]]>
</mx:Script>
</mx:TextInput>
希望这会有所帮助。