2017-02-12 93 views
0

我在Flex s:DataGrid/>中遇到了一个奇怪的问题。 gridItemEditorSessionSave事件为我触发两次。最小代码重现这个问题如下:Flex Spark 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> 

当我编辑该单元格,跟踪语句如下:

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

这表明onGridItemEditorSessionSave触发两次!不知道我错过了什么。

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

回答