<b:datatable> con colores en las filas

Para colorear las columnas de un <b:datatable> usamos el style en cada columna.

 <b:dataTableColumn value="#{item.idcliente}" label="#{msg['field.idcliente']}"
  style="color: #{clienteController.columnColor(item.clasificacioncliente.descripcion)}"/>
  <b:dataTableColumn value="#{item.cedula}" label="#{msg['field.cedula']}" style="color: #{clienteController.columnColor(item.clasificacioncliente.descripcion)}"/>
  <b:dataTableColumn value="#{item.nombre}" label="#{msg['field.nombre']}" style="color: #{clienteController.columnColor(item.clasificacioncliente.descripcion)}" />
  <b:dataTableColumn value="#{item.telefono}" label="#{msg['field.telefono']}" style="color: #{clienteController.columnColor(item.clasificacioncliente.descripcion)}" />
  <b:dataTableColumn value="#{item.celular}" label="#{msg['field.celular']}" style="color: #{clienteController.columnColor(item.clasificacioncliente.descripcion)}"  />

En el controller definimos un mètodo que devuelva el color

 // <editor-fold defaultstate="collapsed" desc="columnColor(String descripcion )">

    public String columnColor(String descripcion) {
        String color = "";
        try {
            switch (JsfUtil.primerCaracter(descripcion)) {
                case "M":
                    color = "red";
                    break;
                case "R":
                    color = "blue";
                    break;
                default:
                    color = "black";
            }
        } catch (Exception e) {
            JsfUtil.errorMessage("color() " + e.getLocalizedMessage());
        }
        return color;
    } // </editor-fold>

Last updated