2017-02-12 10 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 триггеры дважды! Не уверен, что у меня что-то не хватает.

Любая помощь приветствуется, спасибо заранее!

ответ

0

Да, это похоже на ошибку. Есть другие сообщения для этого: http://apache-flex-users.2333346.n4.nabble.com/spark-Datagrid-GridItemEditorEvent-firing-twice-td3582.html

Как уже упоминалось в этой дискуссии я сделал обходной путь, установив флаг _goForCellEdit=true в ItemListEditStart события и проверил это в gridItemEditorSessionSave случае. Надежда поможет, если кто-то столкнется с той же проблемой.