表格两列,第一列不可编辑,第二列可编辑,第二列的数据由第一列数据稍微加工变换处理可得,优化思路:
1、第一列单元格不可编辑,但可复制单元格内容;
2、双击第一列单元格,直接为第二列赋值;
DataGrid提供双击事件处理,但是始终无法直接为编辑控件TextInput赋值,在双击事件中datagrid的itemEditorInstance属性为空,设置了editedItemPosition也一样为空,editedItemPosition需要在itemEditBegin事件后才有值。
3、编辑结束自动赋值;
编辑结束时处理,回车自动进入编辑状态触发itemEditBegin事件,再回车自动触发itemEditEnd事件;
protected function yDataGrid_itemEditEndHandler(event:DataGridEvent):void
{
//1、通过yDataGrid.itemEditorInstance获取现有输入值
var v:String = TextInput(yDataGrid.itemEditorInstance).text;
//2、判断是否为空串
if("" == StringUtil.trim(v)){
//3、取出编辑单元格同行前一列的值
v = _mDataProvider[event.rowIndex].name1;
//4、对值进行加工处理
v = v + ":*:*:*:*:*:*:*:*:*:*".substr(0, (10 - v.split(":").length)*2);
//5、为单元格赋值
TextInput(yDataGrid.itemEditorInstance).text = v;
}
}
来源:oschina
链接:https://my.oschina.net/u/1245084/blog/288225