解决方法
无法使用标准jqGrid方法删除调用类.所以你必须手动完成:
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");
其中getColumnIndexByName是一个简单的函数,它通过列名获取列索引:
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; }
参见演示@L_301_0@.
更新:Free jqGrid有iColByName内部参数,可用于代替getColumnIndexByName函数. iColByName参数将在内部由免费的jqGrid填充,它将通过重新排列列进行更新.所以使用起来很安全
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
方式非常简单,工作非常快.在发布免费的jqGrid 4.8之后,应该考虑到该功能包含在免费的jqGrid中.因此,必须从GitHub下载最新的源代码或至少使用免费的jqGrid 4.9-beta1来获得该功能.