JQGrid 中的多选仅允许多项选择或单一选择,并且移位功能不是我期望的移位选择功能。我也不喜欢我们需要具有多选功能的组合框。
我还可以使用什么其他解决方案进行多选?
最佳答案
[2011 年 10 月] 更新为使用 4.0 API,更正了类次选择错误,简化了选择循环。在 4.2.0 中测试。
<小时/>如果像我一样,您需要在 jqgrid 中进行适当的多选 - 其中 ctrl 一次选择一行,select 选择多行,既不清除选择又选择 1 行 - 您已经找到了。
首先要做的事情:在网格定义中设置multiselect: true
(我没有设置任何其他多选选项)
下一步: 在 gridComplete: function () {}
中设置 grid.jqGrid('hideCol', 'cb');
- this如果您不需要复选框,则隐藏它们。
最后:主体部分
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;
}
结束 - 希望有帮助
关于jquery - JQGrid - 多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186533/