Flex3中数据网格上的关键事件

问题描述

| 我正在Flex3中工作。在这里,我有一个包含数据的数据网格。有些列是可编辑的。用户更改时,将调用列数据Web服务。在这里,使用focusOut函数,我通过通过focusOut函数发送来自datagrid的数据来调用Web服务。现在,我想在用户更改列数据并按键盘键'Enter \'时调用Web服务。在这里,我可以调用函数,但是该事件不会将datagrid的数据携带到所调用的函数中。有人给我解决方案。谢谢。     

解决方法

使用enter事件发送数据 我的要求我在更新过程中使用了以下内容(我也想您也希望如此) 签出代码。希望这会很有用。
<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());

                        }

                    }

                }
    ,您可以在
itemEditor
上使用
enter
事件将数据发送到Web服务。 这是一个粗略的例子:
<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>
    ,我认为您应该使用Event itemEditEnd 可以在下面找到详细信息 DataGrid事件 一个有用的例子是 在Flex中创建可编辑的DataGrid控件 希望能有所帮助     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...