GWT:как изменить цвет строки в GWT Celltable
У меня есть celltable в GWT, я могу изменить цвет определенного столбца этим
celltable.addColumnStyleName(4, "bluetext");
но как я могу изменить например цвет строки Нет 3
спасибо
3 ответов
необходимо указать RowStyles
объект, который возвращает имена классов CSS для каждой строки. Итак, чтобы установить определенный цвет для строки, вам нужно определить класс css с этим цветом, а затем вызвать ваш RowStyles
object для возврата этого класса для соответствующих строк.
Я думаю, вы установили это с cellTable.setRowStyles
или что-то подобное.
cellTable.setRowStyles(new RowStyles<T>() {
@Override
public String getStyleNames(T rowObject, int rowIndex) {
if (rowIndex == 3) {
return "bluetext";
} else {
return "normaltext";
}
});
Если вам нужно обновить цвет строки на основе значения, измененного в одной из ячеек, вы можете добавить следующий код в fieldUpdater этой ячейки:
@Override
public void update(int index, Object object, String value) {
if (someConditionIsMet) {
myTable.getRowElement(index).addClassName("redBackground");
}
}
в файле CSS добавьте этот стиль:
.redBackground {
background-color: red !important;
}
чтобы ответить на последний комментарий, что стиль находится в элементе строки, но не отображается: Использование setRowStyles (new RowStyles ()... Единственный способ заставить стили появиться - это использовать грубую силу. Мне пришлось удалить строку из моего хранилища списков, добавить ее обратно в тот же индекс, а затем обновить RowModel. Чего бы это ни стоило.