如何在Flex DataGrid中结束/停止项目编辑

时间:2011-01-05 18:12:08

标签: flex flash actionscript-3 datagrid air

通常,您更新绑定到数据网格项的数据,如下所示:

    protected function onGridEditEnd(event:DataGridEvent):void
    {
        if (grid.dataProvider != null && event != null)
        {
            var editor:Object = event.currentTarget.itemEditorInstance;

            if (event.columnIndex == getColumnIndex(columnA) {
                    collection[event.rowIndex].name = TextInput(editor).text;
            }
        }
    }

在用户完成编辑后立即调度itemEditEnd事件。 那么,如果我想

怎么办?
  1. 结束编辑(来自itemEditEnd处理程序以外的其他方法或处理程序)
  2. 同时更新绑定数据项的值。
  3. “而”用户正在编辑该项目。

    例如;如何从keyDown事件处理程序触发此操作?

    注意:您可以调用onGridEditEnd(null)来结束编辑但不更新数据。 onGridEditEnd(new DataGridEvent(DataGridEvent.ITEM_EDIT_END, ...))可以工作,但你还需要存储和传递像columnIndex,rowIndex,dataField等值。这似乎不是最好和最简单的方法。

    感谢...

1 个答案:

答案 0 :(得分:1)

尝试将editable属性设置为false(然后您可以将其重新打开)。 或者您可以尝试在其他位置设置焦点(FocusManager.focus = null)。这样它仍然可以编辑,但用户必须再次点击它。