Как получить значение Datagrid Cell в текстовом поле после обновления ячейки с помощью ItemEditor FX: Component ComboboxItemEditor

Как получить значение Datagrid Cell в текстовом поле после обновления ячейки с помощью {s: GridColumn s: itemEditor fx: Component s: ComboBoxGridItemEditor s: dataProvider>]}

Здесь я использую веб-службу для получения данных в сетке данных. Теперь я хочу обновить свой последний столбец GridView. при нажатии на столбец "Статус" открывается раскрывающийся список из ItemEditor ComboboxGridItemEditor и списка массивов в качестве поставщика данных этого столбца. я хочу обновить значение в текстовом поле при изменении.

Вы видите пример, который я использовал в своем приложении.

Используемый ресурс:

http://help.adobe.com/en_US/flex/using/WS0ab2a460655f2dc3-427f401412c60d04dca-7ff8.html

http://help.adobe.com/en_US/Flex/4.0/UsingSDK/WS2db454920e96a9e51e63e3d11c0bf69084-7ca4.html

<?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"
    xmlns:vtrservices="services.vtrservices.*"
    xmlns:vtrservices1="services.vtrservices1.*"
    width="1122" height="632">

<s:layout>
  <s:VerticalLayout/>
  </s:layout>

  <fx:Script>
  <![CDATA[
  import mx.controls.Alert;
  import mx.events.FlexEvent;

  import spark.components.Grid;
  import spark.events.*;
  import spark.events.GridSelectionEvent;

  protected function selectionChangeHandler(event:GridSelectionEvent):void {
  const eventGrid:Grid = event.currentTarget.grid;
  var currentIndx:int = eventGrid.selectedIndex;
  var currentDataItem:Object = eventGrid.selectedItem;
  selIndex.text = String(currentIndx);
  selLName.text = String(currentDataItem.Status);
  }


  import spark.components.gridClasses.GridColumn;


  protected function dgTasks_creationCompleteHandler(event:FlexEvent):void
  {
  GetMyTasksNew1Result.token = vtrServices1.GetMyTasksNew1(451);
  }

  ]]>
  </fx:Script>
<fx:Declarations>
  <s:CallResponder id="GetMyTasksNew1Result"/>
  <vtrservices1:VtrServices1 id="vtrServices1"
    fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
    showBusyCursor="true"/>
  </fx:Declarations>




  <s:DataGrid id="dgTasks" width="100%" height="181"
  creationComplete="dgTasks_creationCompleteHandler(event)" editable="true" selectionChange="selectionChangeHandler(event)"
  variableRowHeight="true"  >
  <s:columns>
  <s:ArrayList>
  <s:GridColumn dataField="AssigneeName" headerText="AssigneeName" editable="false"></s:GridColumn>
  <s:GridColumn dataField="Priority" headerText="Priority" editable="false"></s:GridColumn>
  <s:GridColumn dataField="StartTime" headerText="StartTime" editable="false"></s:GridColumn>
  <s:GridColumn dataField="EndTime" headerText="EndTime" editable="false"></s:GridColumn>
  <s:GridColumn dataField="Progress" headerText="Progress" ></s:GridColumn>
  <s:GridColumn dataField="Status" headerText="Status" >
  <s:itemEditor  >
  <fx:Component>
  <s:ComboBoxGridItemEditor>
  <fx:Script>
  <![CDATA[
  ]]>
  </fx:Script>
  <s:dataProvider>
  <s:ArrayList >
  <fx:String>Open</fx:String>
  <fx:String>In Progress</fx:String>
  <fx:String>In Progress On Hold</fx:String>
  <fx:String>In Approval</fx:String>
  <fx:String>Reopened</fx:String>
  <fx:String>Closed</fx:String>
  <fx:String>Deleted</fx:String>
  </s:ArrayList>
  </s:dataProvider>
  </s:ComboBoxGridItemEditor>
  </fx:Component>
  </s:itemEditor>
  </s:GridColumn>
  </s:ArrayList>
  </s:columns>
  <s:AsyncListView list="{GetMyTasksNew1Result.lastResult}"/>
  </s:DataGrid>

  <s:Label text="Selected index:"/>
  <s:TextArea id="selIndex" height="50"/>

  <s:Label text="Selected Last Name:"/>
  <s:TextArea id="selLName" height="50"/>

</s:WindowedApplication>

Любая помощь будет очень приветствоваться

Спасибо


person TheDean    schedule 12.05.2014    source источник


Ответы (1)


Предлагаю создать собственный класс на основе AsyncListView, а затем переопределить метод itemUpdated. Отсюда вы можете, например, отправить свой пользовательский Event для распространения изменений на другие компоненты пользовательского интерфейса.

См .: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/collections/AsyncListView.html#itemUpdated%28%29

person Petr Hrehorovsky    schedule 12.05.2014