No se puede eliminar la clase de llamada con un método estándar jqGrid. Así que hay que hacerlo de forma manual:
var iCol = getColumnIndexByName(grid,"ColumnName"),
tr = grid[0].rows.namedItem(rowid), // grid is defined as grid=$("#grid_id")
td = tr.cells[iCol];
$(td).removeClass("my-style-class");
donde getColumnIndexByName
es una función simple que obtener el índice de la columna por el nombre de la columna:
var getColumnIndexByName = function(grid,columnName) {
var cm = grid.jqGrid('getGridParam','colModel');
for (var i=0,l=cm.length; i<l; i++) {
if (cm[i].name===columnName) {
return i; // return the index
}
}
return -1;
}
Ver la demo here.
ACTUALIZADA: Free jqGrid tienen iColByName
parámetro interno que puede ser utilizado en lugar de getColumnIndexByName
función. El parámetro iColByName
se rellenará con jqGrid libre internamente y se actualizará al volver a ordenar las columnas. Por lo tanto, es seguro de usar
var p = grid.jqGrid("getGridParam"), // get the reference to all parameters
iCol = p.iColByName["ColumnName"], // get index by column name
cm = p.colModel[iCol]; // item of "ColumnName" column
El camino es muy simple y funciona muy rápido. Se debe tener en cuenta que la función se incluye en la libre jqGrid después de la publicación de jqGrid 4.8 gratis. Así que uno tiene que descargar las últimas fuentes de GitHub o utilizar al menos jqGrid 4.9-beta1 para tener la función.
agradecimiento usted para el código – shv22
@ shv22: ¡De nada! – Oleg