javascript - attribute - ¿Es posible detener la selección y/o el resaltado de las filas de jqGrid?
title html attribute (5)
Sí, use la devolución de llamada rowattr:
rowattr: function (rowData,currentObj,rowId) {
if (rowData.SomeField=="SomeValue") {
return {"class": "ui-state-disabled"};
}
},
Esto también borra la fila y desactiva la selección.
He mirado la documentation pero no he podido encontrar una respuesta. ¿Hay alguna manera de evitar que una fila se resalte cuando se selecciona? Eso o incluso una manera de detener la fila que se selecciona en absoluto. Me gusta la opción "hoverrows: true", pero idealmente, me gustaría evitar que una fila se seleccione al hacer clic.
Gracias,
Actualización: he podido implementar "de forma pirateada" algo que parece ser una solución provisional. Realmente no me gusta nada y me gustaría una mejor solución, si hubiera una ...
He encontrado que si paso la opción
onSelectRow: function(rowid, status) {
$(''#''+rowid).removeClass(''ui-state-highlight'');
}
cuando hago una instancia de jqGrid, puedo quitar el resaltado cuando se agrega.
¿Hay otra forma más ideal de hacer esto?
Si usted, como yo, tiene un millón de millones de jqGrids y no desea anular onSelectRow para cada uno, aquí hay una versión global de la solución de Reigel que funcionó bien para mí:
jQuery.extend(jQuery.jgrid.defaults, {
onSelectRow: function(rowid, e) {
$(''#''+rowid).parents(''table'').resetSelection();
}
});
Supongo que podrías abordar esto en el CSS directamente. Simplemente anule los valores de ui-state-highlight para su tabla específica
#table_id tr.ui-state-highlight {
border: inherit !important;
background: inherit !important;
color: inherit !important;
}
#table_id tr.ui-state-highlight a {
color: inherit !important;
}
#table_id tr.ui-state-highlight .ui-icon {
background-image: inherit !important;
}
Utilicé el valor inherit
solo como ejemplo: es probable que necesite copiar algunos valores de su theme.css para que esto funcione.
Usa el siguiente código:
beforeSelectRow: function(rowid, e) {
return false;
}
tratar:
onSelectRow: function(rowid, status) {
$("#grid_id").resetSelection(); //Resets (unselects) the selected row(s). Also works in multiselect mode.
}
Puedes leer las documentaciones here . Espero que te ayude ...