2012-01-26 18 views

Respuesta

15

usted tiene que proporcionar un objeto RowStyles que devuelve los nombres de clases CSS para cada fila. Por lo tanto, para establecer un color en particular para una fila, debe definir una clase css con ese color y luego hacer que su objeto RowStyles devuelva esa clase para las filas relevantes.

Creo que estableciste esto con cellTable.setRowStyles o algo similar.

cellTable.setRowStyles(new RowStyles<T>() { 
    @Override 
    public String getStyleNames(T rowObject, int rowIndex) { 
     if (rowIndex == 3) { 
      return "bluetext"; 
     } else { 
      return "normaltext"; 
     } 
    }); 
2

Si necesita actualizar color de fila sobre la base de un valor cambiado en una de las celdas, se puede añadir el siguiente código al fieldUpdater de esta célula:

@Override 
public void update(int index, Object object, String value) { 
    if (someConditionIsMet) { 
     myTable.getRowElement(index).addClassName("redBackground"); 
    } 
} 

En su archivo CSS complemento este estilo:

.redBackground { 
    background-color: red !important; 
} 
+0

el archivo CSS que quieres decir es your_module.css?! porque no funcionó para mí Gracias. – amrfaissal

+0

Sea cual sea el archivo CSS que use para su aplicación. Si tiene varios, pueden entrar en conflicto entre ellos. Puede usar las herramientas del navegador para ver qué estilo se aplica realmente a la fila de la tabla y qué estilos se ignoran. –

+1

Veo que la clase css se aplica al elemento pero el estilo no se muestra. – amrfaissal

1

Para responder a la última observación de que el estilo está en el elemento de fila, pero no se rindió: Uso setRowStyles (nuevos RowStyles (...) La única forma en que conseguí que aparecieran los estilos fue usar fuerza bruta. Tuve que eliminar la fila de mi tienda de listas, volver a agregarla al mismo índice y luego actualizar RowModel. Por lo que vale.