【问题标题】:Flex: ItemEditor losing focus!Flex:ItemEditor 失去焦点!
【发布时间】:2011-07-19 11:08:57
【问题描述】:

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

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

问题:

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

我想让 ItemEditor 保持活力!我在哪里连接开始/结束 ItemEdit 等事件?

【问题讨论】:

  • 我们可以看一些代码吗?我可能只是用自定义编辑器创建一个项目渲染器,而不是使用内置的项目编辑器,然后你可以完全控制显示的内容和时间(毫无疑问,你会在那里放置一些聪明的状态);)跨度>

标签: apache-flex itemeditor


【解决方案1】:

您可以通过侦听 DataGridEvent.ITEM_EDIT_END 来保持 itemEditor 处于活动状态。然后你有更多的控制权去做你想做的事。我博客中的一些仅供参考:

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

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

    尝试失去您的 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);
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多