Apache flex Flex DataGrid itemEditEnd事件+preventDefault函数
我正在使用flex的datagrid 我有一个DataGridColumn,定义如下,其中labelFunction允许我显示自定义文本 我还在网格上使用itemEditEnd处理程序来处理为此列输入的数据。其目的是获取用户输入并将其拆分,然后将结果存储在除fixedValue之外的不同属性中 这种方法的问题是,我找不到一种方法来阻止对不存在的fixedValue属性的赋值。在itemEditEnd处理程序中使用event.preventDefault可以阻止其他事件的发生,比如将行从编辑模式更改为查看模式 我的问题是,如果有其他方法来实现同样的事情,或者有一种方法来阻止数据字段数据的赋值 谢谢 我使用数据字段来标识我正在编辑的列。将其保留为空可能不是一个选项Apache flex Flex DataGrid itemEditEnd事件+preventDefault函数,apache-flex,datagrid,Apache Flex,Datagrid,我正在使用flex的datagrid 我有一个DataGridColumn,定义如下,其中labelFunction允许我显示自定义文本 我还在网格上使用itemEditEnd处理程序来处理为此列输入的数据。其目的是获取用户输入并将其拆分,然后将结果存储在除fixedValue之外的不同属性中 这种方法的问题是,我找不到一种方法来阻止对不存在的fixedValue属性的赋值。在itemEditEnd处理程序中使用event.preventDefault可以阻止其他事件的发生,比如将行从编辑模式更
<mx:DataGridColumn id="columnFixedCurrency" labelFunction="fixedCurrecy_labelFunc" dataField="fixedValue" headerText="Price"/>
不要使用itemEditEnd。最好在网格的数据提供程序上使用CollectionEvent。如果要使用itemEditEnd,请使用一个单独的列来存储更改的值,并且用户输入的值可以在columnFixedCurrency中保持不变。我创建了一个示例。用户在一列中输入的值在两列中分为一半列,使用ArrayCollection.HTH上的collectionChange
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.events.CollectionEvent;
import mx.controls.Alert;
import mx.events.DataGridEvent;
import mx.events.ListEvent;
public function splitValues(event:CollectionEvent):void{
if(dg !=null )
{
dg.selectedItem.splitValue1 = dg.selectedItem.fixedValue /2;
dg.selectedItem.fixedValue = dg.selectedItem.fixedValue /2;
}
}
]]>
</mx:Script>
<mx:DataGrid id="dg" editable="true" >
<mx:columns>
<mx:DataGridColumn dataField="splitValue1" headerText="Split Price1" id="columnSplitCurrency1" editable="false"/>
<mx:DataGridColumn id="columnFixedCurrency" dataField="fixedValue" headerText="Price"/>
</mx:columns>
<mx:dataProvider>
<mx:ArrayCollection id="myAC" collectionChange="splitValues(event)">
<mx:Object splitValue1="0" fixedValue="25" splitValue2="0"/>
<mx:Object splitValue1="0" fixedValue="15" splitValue2="0"/>
<mx:Object splitValue1="0" fixedValue="35" splitValue2="0" />
<mx:Object splitValue1="0" fixedValue="45" splitValue2="0"/>
<mx:Object splitValue1="0" fixedValue="65" splitValue2="0"/>
</mx:ArrayCollection>
</mx:dataProvider>
</mx:DataGrid></mx:Application>
如果我有许多列和属性要处理,一个字段编辑将需要我重新执行所有操作。有没有办法知道网格上的哪个列已被编辑,或者selectedItem的哪个属性已被编辑?