【发布时间】:2011-08-07 20:32:52
【问题描述】:
我的应用程序有一个带有自定义项目渲染器的树,它根据叶子上的数据类型使用不同的组件作为编辑器。在一种情况下,我正在尝试使用数据网格,以便用户可以选择满足他需要的行(需要显示几列),即。在概念上类似于 ComboBox。
为此,我将一个函数指定为“itemEditBegin”(用于树)的处理程序,在该处理程序中动态创建数据网格,然后使用弹出管理器将其显示为(模式)弹出窗口。到目前为止一切顺利。
但是,如果您单击任意位置(例如,数据网格中的向下滚动按钮),弹出窗口就会消失,因为触发了 itemEditEnd 事件 - 为什么?!
在另一种情况下,我将 DateField 设置为编辑器,用户可以单击该图标以调出 DateChooser、滚动月份等。我查看了其背后的代码,它使用的是弹出窗口,看起来和我的代码完全一样!
这里是“itemEditBegin”代码:
dataGrid = new DataGrid();
dataGrid.dataProvider = mddTable.dataCollection;
dataGrid.editable = false;
PopUpManager.addPopUp(dataGrid, this, true);
其中“this”是树渲染器用于一行的组件。只要单击数据网格中的任何内容(例如,行、向下滚动按钮、列分隔符等),就会调用树组件的“itemEditEnd”处理程序。
有什么想法吗?
谢谢,
迈克。
【问题讨论】:
标签: apache-flex datagrid popup itemeditor