首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex DataGrid中的DataGrid事件

Flex DataGrid中的DataGrid事件
EN

Stack Overflow用户
提问于 2015-04-10 16:36:12
回答 1查看 889关注 0票数 0

因此,我正在研究如何编辑/验证Flex 3 DataGrid单元格中的输入。下面是我用来学习的基本例子:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
        xmlns:mx="http://www.adobe.com/2006/mxml"   
        width="100%" height="100%" backgroundSize="100%">

    <mx:DataGrid editable="true" itemEditEnd="check(event)">

        <mx:columns>
            <mx:DataGridColumn headerText="Name" dataField="name"/>
            <mx:DataGridColumn headerText="Phone" dataField="phone"/>
        </mx:columns>

        <mx:dataProvider>
            <mx:ArrayCollection>
                <mx:Object name="John" phone="(69)2345-6798"/>
                <mx:Object name="Mary" phone="(69)1234-5678"/>
            </mx:ArrayCollection>
        </mx:dataProvider>

    </mx:DataGrid>

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.events.DataGridEvent;
            import mx.collections.ArrayCollection;

            private function check(event:DataGridEvent):void{
                if(event.dataField == "phone"){
                    Alert.show("hi there!");
                }   
            }
        ]]>
    </mx:Script>

</mx:Application>

在编译并运行.swf之后,它只显示一个有两行的网格;在编辑了网格中的任何电话号码并单击外部后(这意味着编辑的单元格失去焦点,因此Flex将其解释为“编辑已经结束”,从而触发了itemEditEnd事件,调用check()函数)消息"hi那里!“就会出现。我的问题是:如果我一次只编辑一个电话号码,为什么它会出现两次?据我所知,每次我编辑电话号码时,该消息只能出现一次,而不是两次。关于框架是如何工作的,我有什么遗漏吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-13 04:38:57

就像一只虫子。当我点击选项卡/输入或单击另一个单元格时。这将生成itemEditEnd事件,并将焦点移动到新的可编辑单元格。

itemEditEnd事件的事件处理程序中,将显示警报。这个弹出移除可编辑细胞的焦点..。因此,分配了第二个itemEditEnd事件

因此,您必须为其添加一些逻辑,以防止第二个警报框。例如,设置一个boolean变量,并在警告一次时使其生效。

同样的问题已经问过这里了。

Why does Alert.show() give me two Alert boxes?

而且,很多人以前也有过同样的问题。

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29566484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档