【问题标题】:Vaadin: How to focus on first row after updating the grid in Vaadin?Vaadin:在 Vaadin 中更新网格后如何关注第一行?
【发布时间】:2016-03-18 13:59:15
【问题描述】:

我正在构建一个带有网格表的 Vaadin 应用程序。应用程序每分钟重新加载和更新表。使用SelectionMode.NONE 和v-grid-row-focused。不幸的是,每次刷新数据后,网格表中第一行的焦点消失了。经过一些分析,我发现在每个表重新加载后,网格返回v-grid-cell-focused-mode,并且只有在按下arraydown-button之后才能向下滚动行焦点更改为v-grid-row-focused-mode。有没有办法完全禁用v-grid-cell-focused-mode?​​p>

【问题讨论】:

  • 我对@9​​87654327@ 的理解是网格中不会选择任何行,但您似乎想要选择一行。你能澄清一下你正在尝试什么吗?另外,在重新填充网格grid.select(grid.getContainerDataSource().getIdByIndex(0)); 后,您是否尝试过这个技巧?
  • 是的,表格不选择行,而是专注于行。有人以这种方式编程。选择被禁用,行聚焦显示为彩色和较粗的边框。
  • 在这种情况下,您需要共享一些代码(SSCCE),以便我们了解它的全部内容。
  • Select() 突出显示该行...但焦点单元格仍保持原样。有没有办法改变聚焦的单元格? IE。周围有“蓝色”边框的那个?
  • 如何聚焦网格@TatuLund

标签: java grid focus vaadin


【解决方案1】:

要获取 Table 或 Grid 的第一个 itemId(不是 Item),您必须通过 Container.firstItemId

Tables 对此有一个评估方法,但 Grid 没有

Morfic 提出的解决方案并不总是有效,因为当您使用不带参数(索引和分层)的 addItem() 时容器自动生成的整数是增量的,如果您清理/删除所有/某些项目,索引将继续增长(不重置为 0)并且索引从 1 开始,而不是 0(如果您检查源代码),或者如果您的实现有能力从容器中删除项目 并且第一个被删除,零索引将不再存在

grid.select(grid.getContainerDataSource().getIdByIndex(0));

【讨论】:

    【解决方案2】:

    Grid 中没有从服务器端设置焦点单元格的方法。但是我在GridFastNavigation add-on extension 中为 Vaadin 8 添加了这样的方法 setFocusedCell(row,col)。

    https://vaadin.com/directory/component/gridfastnavigation-add-on

    【讨论】:

      猜你喜欢
      • 2019-01-23
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多