我一直在与JQGrid合作,并会向所有人推荐。 我不喜欢的一个功能是内置的多选,它不使用像shift和ctrl这样的特殊键,不会给你很多控制并强制显示复选框。
我想实现我自己的多选,如下: 在onSelectRow-检查是否保持shift或ctrl将行id添加到数组并在网格中选择它。如果没有,则清除数组并添加新的行ID并在网格中选择它。
这很容易实现,除了我需要onSelectRow 中的事件来检查键是否被保留。我宁愿不在主文档本身附加keydown和keyup事件。
onSelectRow: function (id) {
event=???
if (!event.shiftKey && !event.ctrlKey) {
}
else {
}
}
此致 Byron Cobb。
编辑:解决方案 -
在Olegs输入之后,我做了以下几点。
multiselect: true
gridComplete
$("#myGrid").jqGrid('hideCol', 'cb');
中的复选框列
var SelectedRows = $("#myGrid").jqGrid('getGridParam', 'selarrrow');
beforeSelectRow: function (rowid, e) {
if (!e.ctrlKey) {
$("#myGrid").resetSelection();
}
return true;
},
答案 0 :(得分:2)
Since the version 3.5.3 jqGrid支持beforeSelectRow事件,其中包含您需要的事件以及将在onSelectRow
之前调用的事件。
可能使用jqGrid的multikey选项并隐藏名为“cb”的伪列
$("#mygrid").jqGrid('hideCol','cb');
(cb - combo-boxes,参见http://www.trirand.com/blog/?page_id=393/help/multiselect-without-checkboxes-1/)将帮助您在jqGrid中实现您想要的行选择行为。
更新:我想您也知道$("#mygrid").jqGrid('getGridParam','selarrrow')
可用于获取所有当前所选行的ID数组,但也要确保我也插入了这些信息。