flex中获取datagrid选中行的列值

时间:2021-08-18 16:21:42
var v:Object = datagrid.editedItemPosition;
var colIndex:Number=v.columnIndex;
var rowIndex:Number=v.rowIndex;

var colataGridColumn=datagrid.columns[colIndex];


1、下面一行代码是根据行和列获取单元格的值

var rowcoltext:String=datagrid.dataProvider.getItemAt(rowIndex)[col.dataField];


2、下面一行代码是根据单元格的列来获取单元格的值

var coltext:String=datagrid.selectedItem[col.dataField]


3、下面两行代码是不通过行和列直接获取单元格的值
var ti:TextInput=TextInput(datagrid.itemEditorInstance);

var norowcol = ti.text;


我使用的是第2种方式,我要实现的功能是:实现当前页面选中行的修改功能。因为实验室的项目在修改这一块的实现方式是:选中需要修改的行,然后弹出子页面,子页面获取到父页面到字段值,然后做修改。

该项目从后台返回到数据类型为arraycollection,故显示在前台(即为父页面显示内容)为hashmap的显示样式,所以获取字段值需要使用hashmap的键值对的对应关系:

eg: 子页面id为username ,类型为textinput 的一个文本输入框,获取父页面选中行“用户名”的列值,表达方式如下:(设子页面名为:children 父页面名为:parent)

children.username.text=parent.selectedItem["username"].toString();

其中parent.selectedItem["username"].toString()中的username为后台sql语句对应的列值名。