2010-09-29 64 views
2

这对DataGrid专家来说可能是一件容易的事。我下面从行内动态添加行到DataGrid的例子触发项目编辑器中的itemEditEnd事件

http://www.switchonthecode.com/tutorials/adding-dynamic-rows-to-flex-datagrid

我的,我想acoomlish的调整,是有一个自定义的itemEditor是有两个TextInputs和OK按钮形式。对于我的生活,我无法获得该按钮来触发DataGrid的itemEditEnd事件,在我调用destroyItemEditor之前有一些处理。我试着直接调度事件,但在DataGrid的updateDisplayList中发现奇怪的错误,说editItemPosition为null(editedItemPosition.rowIndex)。有任何想法吗?

回答

0

itemEditEnd将在您单击项目编辑器之外时触发。如果您自己调度,则需要在调度之前将rowIndexproperty of the event设置为适当的值。

+0

我实际上有rowIndex(和所有其他DatGridEvent属性)设置,但只是不断得到那个奇怪的错误。 – user461305 2010-09-29 13:41:10

3

我想出了“杜汉”的答案。基本上,在itemEditor中使用listData.owner获取对DataGrid的引用,然后设置DataGrid的editedItemPosition和selectedIndex。这种方式让组件担心清理itemEditor。

var grid:DataGrid = listData.owner as DataGrid; 
grid.editedItemPosition = null; 
grid.selectedIndex = -1;