Render en row condicionalmente a un dato de la DB [Solucionado]
Lo que hago en mi app es por un lado mostrar los empleados y al hacer click en alguno me muestras detalles en diferentes Grids. El tema es que son 4000 activos y 3000 inactivos, por eso quiero poner un filtro para separarlos y ademas lo que me interesa son 1 de 2:
1- Si el row de un empleado contiene el dato que lo identifica como inactivo, colocar el texto del row on rojo por ej.
2- Tambien si esta inactivo, mostrar por ejemplo en el campo nombre "(Inactivo)"
Bueno, aguardo ayuda... :)
Saludos.
Ya lo pude solucionar de la siguiente manera:
var gridView = new Ext.grid.GridView({
forceFit: true, //Comentar si no.
getRowClass : function (row, index) {
var cls = '';
var data = row.data;
switch (data.Activo) { //Activo en mi caso es el nombre del campo
case 'INACTIVO' : //INACTIVO es el dato que condiciona el color
cls = 'redrow'// texto de row inactivo en rojo - definido en index.html
break;
}//end switch
return cls;
}
}); //end gridView
Y en el grid agrego esto:
view: gridView,
En el index.html pongo lo siguiente: (para poner el texto en rojo)
.redrow td {
color: #F00 !important;
}
Si quiero poner el background en rojo:
.redrow {
background-color: #F00 !important;
}
Nada mas... Saludos y gracias por la ayuda.
Lo solucionas con un "renderer", ejemplo:
//en el column model defines el renderer así:
{header:"Ejemplo",dataIndex:"ejemplo",renderer:cambiaColor}
//más adelante defines la función 'cambiaColor'
function cambiaColor(value,record){
if(record.get('activo')){
return ''+value+'';
}else{
return ''+value+'';
}
}
Saludos
Gracias Crysfel, no lo probé pero me parace que eso cambia el fondo de la celda, necesito solo cambiar el color del texto pero de todo el la linea, dependiendo del valor de un solo campo...
Que tal Crysfel,
Espero me puedas dar una mano, traigo un problema parecido, tengo un grid editable y dentro de este un comboBox con 5 opciones, lo que requiero es que cada que se seleccione una opción se le ponga un color a toda la fila, abajo te pongo lo que tengo en esa parte del código, espero puedas ayudarme gracias.
var data=['En Oficina','Enviado a Israel','Reparado en Oficina','En Proceso de Entrega','Entregado'];
var comboEsta =new Ext.form.ComboBox({
fieldLabel:'*Estatus',
name:'cmb-data',
forceSelection:true,
store:data,
emptyText:'Debes seleccionar una opción...',
triggerAction: 'all',
editable:false,
{header:'Estatus', dataIndex:'estatus',sortable: true,width:170,editor:comboEsta},
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.