[Okt 2011] Aktualisiert, um 4.0 API zu verwenden, korrigierte Schichtauswahlfehler, vereinfachte Auswahlschleife. Getestet in 4.2.0.
Wenn Sie wie ich, Sie eine richtige Mehrfachauswahl in der jqGrid benötigt - wo Abfrage zu einem Zeitpunkt eine einzelne Zeile wählt, wählen Sie wählt mehrere Zeilen und weder die Auswahl löschen und wählt 1 Zeile - Sie haben es gefunden.
Das Wichtigste zuerst: set multiselect: true
im Raster Definition
Next (I alle anderen Optionen Mehrfachauswahl nicht festgelegt haben): In gridComplete: function() {}
gesetzt grid.jqGrid('hideCol', 'cb');
- das verbirgt sich die Kontrollkästchen, wenn Sie nicht wollen, Sie.
Schließlich: Der Hauptteil
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;
}
Ende - Hoffnung, die
Ich denke, SO nicht hilft, ist wirklich der Ort, um Ihre Waren zu sein, anzuzeigen. – wmitchell
SO ist eine QA-Site ... Sie haben keine Frage gestellt ... Schreiben Sie einen Blog. Ich stimme zu schließen –
nicht versuchen, M8 zu sein es sieht gut aus ich denke, dass es bessere Orte sein könnte, um es zu setzen. zB auf der Jquery Plugin Seite. Während es gut ist, Begeisterung zu sehen, möchte ich nicht, dass SO zu einem Openair-Markt wird. – wmitchell