Uso jquery y jgrid para crear una grilla en php. He modificado el color de una columna de mi grilla, usando:
$grid[“loadComplete”] = "función(ids) { onloadFunction(ids)";La función onloadFunction es la siguiente:
function onloadFunction(ids) { var ids = $(“#lstStudents”).jqGrid('getDataIDs'); for (var z=0;z<ids.length;z++) { var id=ids[z]; $(“#lstStudents”).jqGrid('setCell',id, 'quarter1',”, {'background':'rgb(250, 250, 250)'}); $(“#lstStudents”).jqGrid('setCell',id, 'quarter1',”, {'color':'rgb(0, 0, 0)'}); } } Al seleccionar una fila, la columna cuyo color modifiqué en la función onLoadFunction se queda con el color establecido, es decir, no toma el color definido de una fila seleccionada. ¿Cómo haría que la columna modificada también tuviera el color de fondo y el color del texto del resto de las columnas?Imagen para aclarar mejor: https://imgur.com/Uhr2sb3
Muchas gracias por la ayuda.
Esto es un poco complicado.
Sabes que el estilo en línea (el estilo de la celda de la tabla) tiene mayor prioridad que el css. Además, la clase resaltada se agrega a la fila, mientras que la clase personalizada se agrega a la celda de la tabla secundaria.
Esto significa que para resolver el problema necesitamos redefinir la clase de celda dentro de la clase resaltada.
En tu aplicación haz:
td.mycolor { background:rgb(250, 250, 250); color : rgb(100, 200, 300); }Agregue esta clase a la celda usando el método setCell
$("#grid").jqGrid("setCell", rowid, "colname", "", "mycolor" );Debajo de la definición de clase mycolor hacer:
.ui-widget-content .ui-state-highlight > td.mycolor { background-color: inherit !important; color : inherit !important; }en el caso de Bootstrap, esto tal vez debería ser
.table-success > td.mycolor { background-color: inherit !important; color : inherit !important; }(consulte los documentos para asegurarse de qué clase se agrega cuando se selecciona la fila)
De esta forma, mycolor heredará los colores de la clase principal cuando agreguemos la clase a la fila.