2011-01-13 3 views
1

1. Wählen Sie alle Zeilen aus, indem Sie das Kontrollkästchen für die Kopfzeile aktivieren. 2. Wählen Sie eine Zeile aus. 3. Das Kontrollkästchen für die Kopfzeile wird weiterhin überprüft, was ungültig ist, weil nicht alle Zeilen ausgewählt sind.jqGrid - So heben Sie die Auswahl der Kopfzeilen-Checkbox auf

Wie kann ich das Kontrollkästchen hedaer row deaktivieren? Dank

Antwort

6

Sie können resetSelection Methode verwenden. Schauen Sie sich the example für this und this Frage vorbereitet. Die Schaltfläche "Auswahl löschen" verwendet resetSelection Methode.

+0

resetSelection hebt die Auswahl aller Zeilen auf. Was wir tun müssen, ist das Kontrollkästchen "Header" zu deaktivieren, aber die Zeilen, die aktuell ausgewählt sind, als ausgewählt zu lassen. – Darren

+0

@Darren: Wenn Sie ids der aktuell ausgewählten Zeilen mit 'getDataIDs' erhalten sollen, rufen Sie' resetSelection' auf und rufen Sie 'setSelection' für alle zuvor ausgewählten IDs auf. Siehe Code, der beim Klicken auf "Alle auswählen" im Beispiel http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect2.htm ausgeführt wird. Nach einer kleinen Änderung haben Sie, was Sie brauchen. – Oleg

0

Sie können folgendes tun:

var grid = $("#ID_OF_YOUR_GRID"); 

grid.jqGrid({ 
     //other options 
     multiselect: true, 
     onSelectRow: function (rowid, status) {  
      var chkSelectAll = $("#ID_OF_THE_HEADER_CHECKBOX_USUALLY_CB_DATA"); 

      if (chkSelectAll.length && chkSelectAll.is(':checked') && !status) {   
       chkSelectAll.removeAttr('checked'); 
      } 
     } 
    }); 

BTW. Sie benötigen dies nur für ältere Versionen von JQGrid. Ich habe Version 4.3.1 eingecheckt, das funktioniert sofort.