私はJQGridをたくさん使ってきたので、みんなにお勧めします。私が本当に好きではない機能の1つは、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;
},