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. Чего бы это ни стоило.