您可以使用为 定义的onSelectRow 或onCellSelect事件jqGrid
编写一个函数,该函数在列数据中添加或删除图像
onSelectRow: function(rowId){
//code to add image and remove from all other rows
var ids = $("#grid").jqGrid('getDataIDs');
var ic = "";
for(var i=0;i < ids.length;i++){
jQuery("#grid").jqGrid('setRowData',rowId,{colName:ic});
}
ic = "<img src='path/images/buttons/icon.gif'/>";
jQuery("#grid").jqGrid('setRowData',rowId,{colName:ic});
},
onCellSelect: function(id, iCol, cellContent, e){
//code to add image and remove from all other rows
var ids = $("#grid").jqGrid('getDataIDs');
var ic = "";
for(var i=0;i < ids.length;i++){
jQuery("#grid").jqGrid('setRowData',rowId,{colName:ic});
}
ic = "<img src='path/images/buttons/icon.gif'/>";
jQuery("#grid").jqGrid('setRowData',id,{colName:ic});
}
更新 :
正如@Oleg 建议的那样,可以在没有太多开销的情况下使用的另一个事件是:
beforeSelectRow:
beforeSelectRow: function(id, e){
//code to add image and remove from all other rows
var gsr = jQuery("#grid").jqGrid('getGridParam','selrow');
var ic = "";
jQuery("#grid").jqGrid('setRowData',gsr,{colName:ic});
ic = "<img src='path/images/buttons/icon.gif'/>";
jQuery("#grid").jqGrid('setRowData',id,{colName:ic});
}