JQGrid の複数選択では、複数選択または単一選択のみが許可され、シフト機能は、シフト選択に期待するものではありません。また、複数選択のコンボボックスが必要なのも好きではありません。
複数選択に使用できる他のソリューションは何ですか?
JQGrid の複数選択では、複数選択または単一選択のみが許可され、シフト機能は、シフト選択に期待するものではありません。また、複数選択のコンボボックスが必要なのも好きではありません。
複数選択に使用できる他のソリューションは何ですか?
[2011 年 10 月] 4.0 API を使用するように更新し、シフト選択のバグを修正し、選択ループを簡素化しました。4.2.0 でテスト済み。
私のように、jqgrid で適切な複数選択が必要な場合 - ctrl は一度に 1 つの行を選択し、select は複数の行を選択し、選択をクリアせずに 1 行を選択します - あなたはそれを見つけました。
まず最初に:multiselect: trueグリッド定義で設定します(他の複数選択オプションは設定しませんでした)
次へ:gridComplete: function () {}セット内grid.jqGrid('hideCol', 'cb');- チェックボックスが不要な場合は非表示にします。
最後に:本編
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;
}
終わり- 助けてくれることを願っています