2017-03-20 2 views
2

(Was ich versuche zu tun: Sie wissen, wie Sie STRG oder UMSCHALTTASTE auswählen, um mehrere Zeilen auszuwählen? Warum nicht einfach ein Klick toggle ohne Tasten erforderlich?)ag-grid Zeile Kontrollkästchen auswählen. Checkbox-Auswahl entspricht der Zeilenauswahl

I Ich versuche es so zu machen, dass rowSelected event oder rowClicked das Kontrollkästchen in der linken Spalte für die ganze Zeile immer aktiviert.

Und fügen Sie hinzu, klicken Sie auf eine andere Zeile und fügen Sie sie hinzu. Klicken Sie auf eine andere Zeile, überprüft das und wählt auch diese Zeile aus.

Klicken Sie auf eine bereits ausgewählte bereits geprüfte Zeile ... und es sollte "uncheck" und "deselect".

So ... Zeile mehrere + Kontrollkästchen mehrere auswählen, sind gleichwertig.

   "rowSelection": "multiple", 
       "onRowSelected": rowSelected, 
       "suppressRowClickSelection": false, 


function rowSelected(event){ 
    console.log("t1 " + event.node.isSelected()); 
    if(event.node.isSelected()){ 
     event.node.setSelected(false); 
    } else { 
     event.node.setSelected(true); 
    } 
} 

Plunker Beispiel:

https://embed.plnkr.co/vf0aV6Q0MgA4ZvtzWhFb/

(Plunker Beispiel können Sie keine Zeile deaktivieren mehr)

+0

Vielleicht ' "onRowSelected": rowSelected' sollte' "onRowSelected" sein: rowClicked' –

+0

ich beide versucht haben. rowClicked und rowSelected sind nur Namen der Funktion. Ich habe die richtigen Funktionsnamen im Code. Das Problem ist, dass das ag-Grid versucht, ALLE NODES anstelle der ausgewählten Knoten zu durchlaufen und abstürzt. rowAusgewählt -> Zeile auswählen -> Kontrollkästchen ankreuzen -> fertig stellen. rowSelected -> Auswahl aufheben -> Auswahl aufheben -> fertig. Ich kann diese Logik nicht herstellen. – Dexter

Antwort

4

gelöst. Grundsätzlich überschreiben sie ihr voreingestelltes "Selektionsmodell".

function RowClickEventHandler(event){ 
    if(event.node.isSelected()){ 
     console.log("deselected"); 
     event.node.setSelected(false, false); 
    } else { 
     event.node.setSelected(true); 
     console.log("selected, add"); 
    } 

} 

var gridOptions = { 
    columnDefs: columnDefs, 
    onRowClicked: RowClickEventHandler, 
    suppressRowClickSelection: true, 
    suppressCellSelection: true, 
    rowSelection: 'multiple', 
    rowData: null 
}; 

https://plnkr.co/edit/KHj1lstv9GQncxlX4Gvx?p=preview

Verwandte Themen