4

我有一个 CellTable,里面有一堆渲染到<input>标签的单元格。由于 CellTable 的花哨事件处理,输入之间的选项卡被破坏了。似乎 tab 激发了每个单元格finishEditing,但这反过来又占据了焦点,焦点永远不会到达下一个<input>

在每个输入上设置 tabIndex 似乎不会影响行为。

如何恢复通常的选项卡功能?

4

4 回答 4

8

我最近想通了。烦人,但一旦你找到魔法就很简单。

  1. 创建一个新的单元格类型以在您的表格中使用,因为股票 TextInputCell 指定的选项卡索引为 -1。基本上做 TextInputCell 所做的一切,但不要在模板中指定任何选项卡索引。
  2. 禁用 CellTable 上的默认键盘导航。 cellTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED)

这应该会在您的 CellTable 中生成正常的选项卡导航。

于 2011-06-20T21:50:29.577 回答
2

如果您使用任何 MVP 框架,禁用 KeyboardSelectionPolicy 可能不适用于所有视图。GWT 选择单元格而不是单元格内的输入字段。

这是我在我的应用程序中使用的解决方案:Adding TAB control to GWT CellTable

于 2014-03-09T20:06:16.470 回答
0

如果您不更改单元格的值,Ben Imp 的解决方案工作正常,但如果您更改值并尝试使用选项卡导航到下一个单元格,它会失去焦点并从视图的第一个元素开始。我还没有找到解决这种不当行为的方法。

于 2013-04-22T11:55:51.943 回答
0

For those looking at this in the future trying to figure out how to have tabbing while changing values, do what the Ben Imp suggests then also in your custom components remove any reference to super.finishEditing. In some cases this means overriding finishEditing and having it do nothing.

于 2015-05-01T14:34:17.887 回答