Flex:ItemEditor失去焦点!

时间:2011-07-19 11:08:57

标签: flex itemeditor

这是我的问题所在的图像: 我使用一个组合框作为Datagrid ItemEditor(不只是渲染器,我的渲染器是一个标签,双击单元格使组合框可见,所有项目编辑器的情况都是如此)

现在,选择组合框中的一个条目没问题。但我的问题是,只有当我选择“水果”时,它会弹出另一个名为“选择水果”的对话框

问题:

如何保持项目编辑器,而焦点在于图层;现在,一旦我点击水果,我的处理程序弹出“选择水果”对话框,焦点就在图层上。一旦焦点离开编辑器,ItemEditor就会消失,并且ItemRenderer标签会回来。

我想让ItemEditor保持活力!我在哪里挂钩事件的内容,如开始/结束ItemEdit等?

Flex: Item editor, losing focus!

2 个答案:

答案 0 :(得分:1)

您可以通过侦听DataGridEvent.ITEM_EDIT_END来使itemEditor保持活动状态。那么你有更多的控制权来做你想做的事。我博客上的一些FYI:

DataGridEvent.ITEM_EDIT_END - 从单元格中移除焦点时调度 - 基于列表的控件的默认事件监听器

1)使用.editorDataFrield属性来确定项目编辑器的属性以存储编辑的数据;在默认的TextInput控件的项目编辑器中,“text”属性将包含新数据。

2)根据事件的原因调用destoryItemEditor()

  • 您可以使用event.preventDefault()
  • 来中断默认的基于List的控件的默认事件侦听器

a)修改项目编辑器返回的数据

b)检查/验证输入项目编辑器的数据;如果数据不正确,您可以暂停Flex将数据从项目编辑器传回到基于列表的控件

http://knowledge.lapasa.net/?p=153

答案 1 :(得分:0)

尝试失去ItemEditor的焦点。转到组合框改变听众

protected function comboBox_changeHandler(event:ListEvent):void
{
// set focus out event on datagrid. Its like clicking outside the datagrid
event.target.parent.parent.parent.dispatchEvent(new FocusEvent(FocusEvent.FOCUS_OUT);

}