apache-flex Flex Spark数据网格网格项目编辑器会话保存事件问题

8hhllhi2  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(124)

我在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触发了两次!不确定我错过了什么。
任何帮助感激不尽,提前感谢!

olmpazwi

olmpazwi1#

是的,它看起来像一个bug。还有其他关于这个的报告:http://apache-flex-users.2333346.n4.nabble.com/spark-Datagrid-GridItemEditorEvent-firing-twice-td3582.html
正如在本讨论中提到的,我已经通过在ItemListEditStart事件中设置一个标志_goForCellEdit=true并在gridItemEditorSessionSave事件中检查它来做了一个变通方案。希望在有人遇到同样的问题时能有所帮助。

相关问题