Ключевые события в сетке данных в Flex3 - PullRequest
2 голосов
/ 14 апреля 2011

Я работаю во Flex3. Здесь у меня есть сетка данных, которая содержит данные. некоторые столбцы доступны для редактирования. когда пользователь изменяет данные столбца, вызывается веб-служба. Здесь, используя функцию focusOut, я вызываю веб-сервис, отправляя данные, поступающие из сетки данных, через функцию focusOut. Теперь я хочу вызвать веб-сервис, когда пользователь изменяет данные столбца и нажимает клавишу «Ввод». Здесь я могу вызвать функцию, но событие не переносит данные таблицы данных в вызываемую функцию. Кто-то дает мне решение для этого. Спасибо.

Ответы [ 3 ]

1 голос
/ 19 апреля 2011

используйте событие ввода для отправки данных мое требование я использовал следующее для ОБНОВЛЕНИЯ ПРОЦЕССА (Я ДУМАЮ, ЧТО ВЫ ЖЕЛАЕТЕ ТО ЖЕ ЖЕ)

ПРОВЕРЬТЕ КОДЕКС .. надеюсь, это будет полезно ....

<mx:DataGrid id="datagrid2" dataProvider="{cat}"  editable="true"  keyDown="gridkey(event)"   x="10" y="152"  visible="true" width="703">
            <mx:columns>
            <!--<mx:DataGridColumn dataField="catCode" headerText="CATEGORY CODE" editable="false"/>-->         
                    <mx:DataGridColumn dataField="catDesc" headerText="CATEGORY DESCRIPTION"  editable="true">
                    <mx:itemEditor >

                        <mx:Component>

                            <mx:TextInput  errorColor="#0294b3" errorString="Click Enter and Save"  restrict="A-Za-z0-9" maxChars="15"/>
                        </mx:Component>
                    </mx:itemEditor>
                    </mx:DataGridColumn>

                <mx:DataGridColumn dataField="updatedate" headerText="LAST UPDATE DATE" editable="false"/>

В СЦЕНАРИИ ДЕЙСТВИЙ ... ИСПОЛЬЗУЙТЕ СЛЕДУЮЩИЙ

public function gridkey(event:KeyboardEvent):void
            {

                if (event.keyCode == Keyboard.ENTER)
                {
                    var obj:Object = event.currentTarget.selectedItem;

                    for(var n:String in cat)
                    {

                        var items:CategoryVO = cat[n] as CategoryVO;
                        if(obj.catCode == items.catCode && obj.orgId == items.orgId)
                        {

                            items.catCode=obj.catCode;
                            items.catDesc=obj.catDesc;
                            items.updateby=obj.updateby;
                            items.alter = "Altered";  //use    private  var _alter:String; in flex VO class where remote class getters and settrs are used...//
                            //Alert.show(items.id.toString());
                            DeletedItems.push(items.catCode);
                        //  Alert.show(DeletedItems.toString());

                        }

                    }

                }
0 голосов
/ 14 апреля 2011

Я думаю, вы должны использовать Event itemEditEnd подробности можно найти на

DataGrid Events

полезный пример:

Создание редактируемого элемента управления DataGrid в Flex

надеется, что это поможет

0 голосов
/ 14 апреля 2011

Вы можете использовать событие enter на вашем itemEditor для отправки данных на ваш веб-сервис.

Вот пример:

<mx:itemEditor>
  <mx:Component>
    <mx:VBox>
      <mx:TextInput id="setCity" width="130" text="{data.City}" enter="outerDocument.callMyWebService(data)"/>
    </mx:VBox>
  </mx:Component>                 
</mx:itemEditor>
...