Flex Spark DataGrid GridItemEditorSessionSave事件问题

时间:2017-02-12 17:26:04

标签: flex

我在Flex s:DataGrid/>中遇到了一个奇怪的问题。 gridItemEditorSessionSave事件会为我触发两次。重新创建此问题的最低代码如下:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Declarations>
        <s:ArrayCollection id="dp">
            <fx:Object test="Test"/>
        </s:ArrayCollection>
    </fx:Declarations>

    <fx:Script>
        <![CDATA[
            import spark.events.GridItemEditorEvent;

            protected function onGridItemEditorSessionSave(event:GridItemEditorEvent):void
            {
                trace("Edited >>>", event.columnIndex);
            }

            protected function onGridItemEditorSessionStart(event:GridItemEditorEvent):void
            {
                trace("Edit Start >>>", event.columnIndex);
            }

        ]]>
    </fx:Script>


    <s:DataGrid dataProvider="{dp}" width="100%" height="100%" editable="true"
                gridItemEditorSessionSave="onGridItemEditorSessionSave(event)"
                gridItemEditorSessionStart="onGridItemEditorSessionStart(event)">
        <s:columns>
            <s:ArrayCollection>
                <s:GridColumn dataField="test"/>
            </s:ArrayCollection>
        </s:columns>
    </s:DataGrid>

</s:WindowedApplication>

编辑单元格时,trace语句如下:

Edit Start >>> 0 Edited >>> 0 Edited >>> 0

表示onGridItemEditorSessionSave触发两次!不确定我遗漏了什么。

任何帮助表示感谢,提前谢谢!

1 个答案:

答案 0 :(得分:0)

是的,这似乎是个错误。还有其他报告:http://apache-flex-users.2333346.n4.nabble.com/spark-Datagrid-GridItemEditorEvent-firing-twice-td3582.html

正如在本次讨论中所提到的,我在_goForCellEdit=true事件中设置了一个标记ItemListEditStart并在gridItemEditorSessionSave事件中进行了检查,从而完成了一种解决方法。如果有人遇到同样的问题,希望会有所帮助。