带有行索引的 Vaadin 流网格

Kas*_*rer 6 vaadin vaadin-grid vaadin-flow vaadin14

如何将行索引列添加到网格中,该列不会按照用户对行进行排序?

该解决方案不得包括对任何聚合物模板的更改,而应在 java 中完成。

Kas*_*rer 8

索引从 0 开始

grid.addColumn(TemplateRenderer.of("[[index]]"));
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为在网格的前端部分已经有一个可用于每一行的索引属性。


索引从 1 开始

编辑:这实际上是一个很大简单实现这个比我之前提议的方式方法。您可以使用 executeJS 为 Web 组件设置客户端渲染器。
是的,它仍然有点“hacky”,但它仍然比我自己的方法好几英里。

grid.addColumn(item -> "").setKey("rowIndex");

grid.addAttachListener(event -> {
    grid.getColumnByKey("rowIndex").getElement().executeJs(
            "this.renderer = function(root, column, rowData) {root.textContent = rowData.index + 1}"
    );
});
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


相关的 github 和 vaadin-forum 线程:

https://vaadin.com/forum/thread/17471146/grid-start-row-count-from-1
https://github.com/vaadin/vaadin-grid/issues/1386
https://开头vaadin。 com/forum/thread/18287678/vaadin-grid-exclude-specific-column-from-sorting
https://github.com/vaadin/vaadin-grid-flow/issues/803