从输入到CellTable中的输入选项卡

时间:2011-05-03 20:45:34

标签: gwt gwt-2.2-celltable

我有一个CellTable,其中包含一堆呈现<input>标签的单元格。由于CellTable的奇特事件处理,输入之间的标签被打破。标签似乎激发了每个单元格finishEditing,但这反过来占据焦点,焦点永远不会到达下一个<input>

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

如何恢复常用的标签功能?

4 个答案:

答案 0 :(得分:8)

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

  1. 创建要在表中使用的新Cell类型,因为库存TextInputCell指定选项卡索引为-1。基本上做TextInputCell所做的一切,但不要在模板中指定任何选项卡索引。
  2. 禁用CellTable上的默认键盘导航。 cellTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED)
  3. 这应该会导致CellTable中的常规标签导航。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

对于那些在将来试图弄清楚如何在更改值时使用Tab键的人,请执行Ben Imp建议然后在您的自定义组件中删除对super.finishEditing的任何引用。在某些情况下,这意味着覆盖finishEditing并使其无效。