flex DataGrid单元格回车自动赋值

表格两列,第一列不可编辑,第二列可编辑,第二列的数据由第一列数据稍微加工变换处理可得,优化思路:

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;
    }
}


你可能感兴趣的:(datagrid,Flex,回车,单元格)