Таблица Vaadin Grid: как отключить функцию сортировки и установить цвет одного столбца
Я использую Grid
таблица в Vaadin для представления данных.
Для этого я пытаюсь выяснить следующие вопросы:
1.) Как отключить функцию сортировки в заголовке каждого столбца
2.) Как установить цвет одного столбца в Grid
стол
2 ответов
прежде всего, я нахожу Vaadin docs хорошее место, чтобы начать искать помощь. Для остальной части упражнения предположим, что у нас есть Grid
С 3 простыми столбцами c1, c2 & c3:
Grid grid = new Grid();
grid.addColumn("c1", String.class);
grid.addColumn("c2", String.class);
grid.addColumn("c3", String.class);
1.) Как отключить функцию сортировки в заголовке каждого столбца
повторите каждый столбец и установите его свойство сортировки в false:
for (Grid.Column column : grid.getColumns()) {
column.setSortable(false);
}
или просто получить это столбец и установите его свойство сортировки:
grid.getColumn("c1").setSortable(false);
2.) Как установить цвет одного столбца в таблице сетки
похоже на то, как это покончено со столом, вам нужно определить свой стиль CSS в вашем тема:
@import "../valo/valo.scss";
@mixin mytheme {
@include valo;
// Insert your own theme rules here
.v-grid-cell.green {
background: #33BB00;
}
}
и использовать CellStyleGenerator чтобы применить стиль к нужной колонке:
grid.setCellStyleGenerator(new Grid.CellStyleGenerator() {
@Override
public String getStyle(Grid.CellReference cellReference) {
if ("c1".equals(cellReference.getPropertyId())) {
return "green";
} else {
return null;
}
}
});
, который должен генерировать что-то вроде:
вот небольшое дополнение к Morfic хороший ответ:
1.) Как отключить функцию сортировки в заголовке каждого столбца
Grid запрашивает контейнер, является ли столбец сортируемым (см. appendColumn-method в Grid). Если требуется отключить сортировку для всех столбцов, можно переопределить getSortableContainerPropertyIds в контейнере и вернуть пустую коллекцию:
container = new BeanContainer<String, Dive>(Dive.class) {
@Override
public Collection<?> getSortableContainerPropertyIds() {
LinkedList<Object> sortables = new LinkedList<Object>();
return sortables;
}
};