如何在 Flex DataGrid 中结束/停止项目编辑
Posted
技术标签:
【中文标题】如何在 Flex DataGrid 中结束/停止项目编辑【英文标题】:How to end/stop item edit in Flex DataGrid 【发布时间】:2011-06-04 04:53:24 【问题描述】:通常,您更新绑定到数据网格项的数据,如下所示:
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
事件在用户完成编辑后立即调度。
所以,如果我想怎么办
-
结束编辑(从
itemEditEnd
处理程序以外的其他方法或处理程序)
同时更新绑定数据项的值。
“当”用户正在编辑项目。
例如;如何从 keyDown
事件处理程序触发此事件?
注意:您可以调用onGridEditEnd(null)
,这将结束编辑但不更新数据。 onGridEditEnd(new DataGridEvent(DataGridEvent.ITEM_EDIT_END, ...))
可以,但您还需要存储和传递 columnIndex、rowIndex、dataField 等值。这似乎不是最好和最简单的方法。
谢谢...
【问题讨论】:
我会推荐你的第二种方法;创建一个硬编码事件”并手动调度它。 Jeff 所说的,我会补充...如果您想要更好的控制,请完全摆脱项目编辑器,并使用具有适当状态的 ItemRenderers。它更容易控制,使用起来更自然。 似乎没有其他合适的方法..我不得不使用我的第二种方法..无论如何谢谢.. 【参考方案1】:尝试将editable
属性设置为 false(然后您可以重新打开它)。
或者您可以尝试在其他地方设置焦点 (FocusManager.focus = null
)。这样它仍然可以编辑,但用户必须再次单击它。
【讨论】:
以上是关于如何在 Flex DataGrid 中结束/停止项目编辑的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flex 中控制 Spark Datagrid 的滚动条位置?
如何使用mx Prints DataGrid打印flex spark datagrid?或者是否有其他方法可以在不使用mx Prints DataGrid的情况下实现此目的?