【问题标题】:Select a row in extjs grid without moving the focus to that grid在 extjs 网格中选择一行而不将焦点移动到该网格
【发布时间】:2013-08-13 21:35:20
【问题描述】:

我有一张表格,需要根据 2 张或更多图片填写。表单位于页面底部(SOUTH),左侧是图像列表,中间窗格显示图像。

当我在使用 Shift-PageUp/Shift-PageDown 的编辑字段中时,我正在尝试使用键盘更改显示的图像。

所有这些都可以正常工作,除非我这样做了

images.getSelectionModel().selectPrevious(false);  

焦点离开输入字段并移动到网格。我需要传播选择事件,因此我可以显示列表中的新图像,但我不想从输入字段中窃取焦点。

无论如何,我看不到选择网格中的行并将屏幕焦点留在原处。有没有办法做到这一点?

http://docs.extjs.com/extjs/4.2.1/#!/api/Ext.selection.RowModel-method-selectNext

如果有的话,我看不到。 4.2.1

【问题讨论】:

    标签: extjs extjs4.2


    【解决方案1】:

    选择模型上还有隐藏的preventFocus 属性。这应该引发 select 事件,但不要设置焦点。

    http://docs.sencha.com/extjs/4.2.1/source/Model2.html#Ext-selection-Model-method-doSingleSelect

    【讨论】:

      【解决方案2】:

      一个解决方案可能有点变通,但应该可以解决问题。在启动网格选择的任何事件中,选择您想要的行,然后使用以下命令将焦点返回到相关字段:

      myField.focus()
      

      或

      this.focus()
      

      【讨论】:

      • 这就是我最终所做的。幸运的是,我可以在一个地方完成它,这与我必须在每个字段中嵌入的特殊键处理程序不同。
      【解决方案3】:

      尝试将suppressEvent arg 设置为true(第二个)

      http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.selection.RowModel-method-selectPrevious

      【讨论】:

      • 不能,我需要触发 select 事件,以便使用新图像更新图像页面。 (见代码下的段落)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      相关资源
      最近更新 更多