JQGrid中的多选功能只允许多选或单选,而shift功能并不是我期望的shift select功能。我也不喜欢我们需要多选的组合框。
我还可以使用什么其他解决方案来进行多选?
发布于 2010-11-16 00:59:52
2011年10月更新为使用4.0API,更正了shift-selection错误,简化了选择循环。在4.2.0中进行了测试。
如果像我一样,您需要在jqgrid中使用适当的multiselect -其中ctrl一次选择一行,select选择多行,并且既不清除选择,也不选择1行-您已经找到了。
最重要的事情首先是:在网格定义中设置multiselect: true
(我没有设置任何其他多选选项)
Next: In gridComplete: function () {}
set grid.jqGrid('hideCol', 'cb');
-如果您不需要复选框,这将隐藏它们。
Finally:主要部分
beforeSelectRow: function (rowid, e) {
if (!e.ctrlKey && !e.shiftKey) {
$("#grid").jqGrid('resetSelection');
}
else if (e.shiftKey) {
var initialRowSelect = $("#grid").jqGrid('getGridParam', 'selrow');
$("#grid").jqGrid('resetSelection');
var CurrentSelectIndex = $("#grid").jqGrid('getInd', rowid);
var InitialSelectIndex = $("#grid").jqGrid('getInd', initialRowSelect);
var startID = "";
var endID = "";
if (CurrentSelectIndex > InitialSelectIndex) {
startID = initialRowSelect;
endID = rowid;
}
else {
startID = rowid;
endID = initialRowSelect;
}
var shouldSelectRow = false;
$.each($("#grid").getDataIDs(), function(_, id){
if ((shouldSelectRow = id == startID || shouldSelectRow)){
$("#grid").jqGrid('setSelection', id, false);
}
return id != endID;
});
}
return true;
}
The End -有帮助的希望
https://stackoverflow.com/questions/4186533
复制相似问题