6

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

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

4

1 回答 1

8

索引从 0 开始

grid.addColumn(TemplateRenderer.of("[[index]]"));

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


索引从 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}"
    );
});

在此处输入图像描述


相关的 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

于 2020-05-28T09:34:23.287 回答