我一直在使用 JQGrid,并且会向所有人推荐它。我不太喜欢的一个功能是内置的多选,它不使用 shift 和 ctrl 等特殊键,没有给你太多控制并强制显示复选框。
我想实现我自己的多选,如下所示:在 onSelectRow-检查是否持有 shift 或 ctrl 将行 id 添加到数组并在网格中选择它。如果没有保留,请清除数组并添加新的行 ID 并在网格中选择它。
这很容易实现,除了我需要 onSelectRow 中的一个事件来检查键是否被持有。我不希望在主文档本身上附加 keydown 和 keyup 事件。
onSelectRow: function (id) {
event=???
if (!event.shiftKey && !event.ctrlKey) {
}
else {
}
}
问候,拜伦·科布。
编辑:解决方案 -
在 Olegs 输入之后,我做了以下事情。
multiselect: true在网格定义中设置gridComplete通过设置隐藏复选框列$("#myGrid").jqGrid('hideCol', 'cb');- 在选择之前我自己检查了 ctrl 键(不使用 multikey:"ctrlKey"),如果没有按下 ctrl 键,则清除选择。
- 稍后在需要时使用选择数组 -
var SelectedRows = $("#myGrid").jqGrid('getGridParam', 'selarrrow');
beforeSelectRow: function (rowid, e) {
if (!e.ctrlKey) {
$("#myGrid").resetSelection();
}
return true;
},