Actionscript 3 TextInput作为spark datagrid中的ItemEditor,其中第三列值不应重复
我的datagrid有3列,第三列有textinput itemEditor。当文本更改时,如果该文本与任何其他文本匹配(基本上文本是int)。弹出窗口应显示为重复。这是我写的代码,实际上工作不正常,我是flex新手,所以请不要介意我的代码是否奇怪Actionscript 3 TextInput作为spark datagrid中的ItemEditor,其中第三列值不应重复,actionscript-3,apache-flex,flex4,flex4.5,flex4.6,Actionscript 3,Apache Flex,Flex4,Flex4.5,Flex4.6,我的datagrid有3列,第三列有textinput itemEditor。当文本更改时,如果该文本与任何其他文本匹配(基本上文本是int)。弹出窗口应显示为重复。这是我写的代码,实际上工作不正常,我是flex新手,所以请不要介意我的代码是否奇怪 <s:GridItemEditor xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
<s:GridItemEditor xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
override public function set data(value:Object):void
{
super.data = value;
col3TextField.text = data.columnThree;
}
/*
override public function set value(newValue:Object):void {
col3TextField.text = newValue as String;
}
*/
override public function get value():Object {
if (parseInt(col3TextField.text) == data.columnThree) {
return data[column.dataField];
}
return col3TextField.text;
}
override public function save():Boolean
{
if (parseInt(col3TextField.text) == data.columnThree) {
Alert.show("Duplicate");
}
}
data[column.dataField] = value;
return true;
}
]]>
</fx:Script>
<s:TextInput id="col3TextField" width="100%" color="red" restrict="0-9" maxChars="4"/>
</s:GridItemEditor>
<s:DataGrid x="139" y="340" width="300" height="300" dataProvider="{dgData}" editable="true"
>
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="columnOne" headerText="Data Col #1" editable="false"/>
<s:GridColumn dataField="columnTwo" headerText="Data Col #2" editable="false"/>
<s:GridColumn dataField="columnThree" headerText="Data Col #3" itemEditor="custom.CustomItemEditor" >
</s:GridColumn>
</s:ArrayList>
</s:columns>
</s:DataGrid>
不要从ItemRenderer内部发送警报,而是发送一个ID为“ItemSaveEvent”的自定义事件,并在datagrid所在的位置处理业务逻辑,或者更好地在表示模型中处理业务逻辑 也就是说,小心你的平等检查。parseInt返回一个数字类型。你的数据是一个数字吗?如果是,请确保您想要:
请参阅ItemRenders中有关自定义事件的提示。这个问题非常令人困惑;我不知道从哪里开始。“文本更改时”您指的是什么文本?项目编辑器中的文本?你指的是什么弹出窗口?弹出窗口与副本有什么关系?什么是复制品?据我所知,itemEditor的save函数从未调用过。您确定parseInt(col3TextField.text)正在返回值吗?