Как добавить в сетку столбец с индексом строк, который не будет сортироваться при сортировке строк пользователем?
Решение не должно включать изменения какого-либо полимерного шаблона, а должно выполняться на java.
Как добавить в сетку столбец с индексом строк, который не будет сортироваться при сортировке строк пользователем?
Решение не должно включать изменения какого-либо полимерного шаблона, а должно выполняться на java.
Индекс начиная с 0
grid.addColumn(TemplateRenderer.of("[[index]]"));
это работает, потому что во внешней части сетки уже есть свойство index, доступное для каждой строки.
Индекс начиная с 1
Изменить: на самом деле это намного более простой способ добиться этого, чем тот, который я предлагал ранее. Вы можете настроить рендерер на стороне клиента для веб-компонента с помощью executeJS.
Да, это все еще немного «взломано», но все же оно намного лучше, чем мой собственный подход.
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 а>
rowIndex
. У меня нет опыта работы с сетками с разбивкой на страницы, и я не могу вам здесь помочь.
- person kscherrer; 17.06.2020