jqGrid在单行选择模式下,resetSelection后,是正常的。
但是在多行选择模式下,resetSelection后,仅仅是取消grid的checked状态,内部存储的selarrrow信息,并没有取消。
直接修改源码。
resetSelection : function( rowid ){
var t = this, sr, fid;
if( t.p.frozenColumns === true ) {
fid = t.p.id+"_frozen";
}
if(rowid !== undefined ) {
sr = rowid === t.p.selrow ? t.p.selrow : rowid;
$("#"+$.jgrid.jqID(t.p.id)+" tbody:first tr#"+$.jgrid.jqID(sr)).removeClass("ui-state-highlight").attr("aria-selected","false");
if (fid) { $("#"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid)).removeClass("ui-state-highlight"); }
if(t.p.multiselect) {
$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr']("checked",false);
if(fid) { $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false); }
t.setHeadCheckBox(false);
//取消选择后,重置已选择行id信息
var selectedIds = t.p.selarrrow;
var selarrrow = [];
for (var i = 0; i < selectedIds.length; i++) {
if (selectedIds[i] != rowid) {
selarrrow.push(selectedIds[i]);
}
}
t.p.selarrrow = selarrrow;
}
sr = null;
} else if(!t.p.multiselect) {
......
t.p.savedRow = [];
});
},