2017-05-10 4 views
0

Hallo Ich versuche, eine Tabelle zu erstellen, die aus Checkboxen besteht. Und jede Zeile hat ihre eigene Klasse und ID.Bedingte Prüfung von "Datatable Checkboxes" in jQuery

$('#niisPrprtyCoverageTable').dataTable({ 
    "data" : coverageList, 
    "columns" : [ { 
     "data" : "seqNo", 
    "visible" : false 
    }, { 
     "data" : "coverageCode" 
    }, { 
     "data" : "coverageName" 
    }, { 
     "data" : "coverageCode", 
     "width" : "80px", 
     "className" : "text-center", 
     render : function(data, type, row) { 
      var arrData = data.split(";"); 
      var coverageCd = arrData[0]; 
      var coverageRel = nvl(arrData[1], coverageCd); 
      data = '<input class="'+coverageRel+'" id="'+coverageCd+'" type="checkbox" onClick="addToArray(' 
       + coverageCd 
       + ',' 
       + coverageRel 
       + ')">'; 
      return data; 
     } 
    } ], 
    "searching" : false, 
    "bLengthChange" : false, 
    "iDisplayLength" : 15 , 
    "bSort" : false, 
    "columnDefs" : [ { 
     "targets" : [ 1, 2 ], 
     "className" : "left" 
    }, { 
     "targets" : [ 2 ], 
     "width" : "150px", 
    }, { 
     "targets" : [ 1 ], 
     "width" : "100px", 
    }, { 
     "targets" : [ 3 ], 
     "width" : "50px", 
     "className" : "text-center" 
    } ] 
}); 
niisPrptyCoverageTable = $('#niisPrprtyCoverageTable').DataTable(); 

$('#select-all').on('click', function(){ 
    alert('ss'); 
    // Get all rows with search applied 
    var rows = niisPrptyCoverageTable.rows({ 'search': 'applied' }).nodes(); 
    // Check/uncheck checkboxes for all rows in the table 
    $('input[type="checkbox"]', rows).prop('checked', this.checked); 
}); 

Was passieren soll, ist, wenn ich die Hauptreihe überprüfen, werden alle Zeilen unter seinem ‚Code oder id‘ sollte auch überprüft werden.

Es aber nur auf der ersten Seite arbeitet enter image description here

aber funktioniert nicht auf der zweiten Seite der Datentabelle enter image description here

var array = []; 
function addToArray(coverageCd, coverageRel) { 
    var rows = niisPrptyCoverageTable.rows('.'+coverageRel).nodes().className; 
    $('input[class='+coverageCd+']', rows).prop('checked', '#'+coverageCd.checked); 
} 
+0

wie zu unterscheiden _Ich überprüfe die Hauptreihe_ und andere? – Searching

Antwort

1

Verwenden $() API-Methode Zugriff auf Elemente auf alle erhalten Seiten, nicht nur aktuelle Seite.

Zum Beispiel:

var array = []; 
function addToArray(coverageCd, coverageRel) { 
    var rows = niisPrptyCoverageTable.rows('.'+coverageRel).nodes().className; 
    niisPrptyCoverageTable.$('input[class='+coverageCd+']', rows).prop('checked', '#'+coverageCd.checked); 
} 

sehen Alternativ jQuery DataTables Checkboxes Erweiterung für eine einfachere Handhabung von Kontrollkästchen in einer Tabelle von jQuery Tables mit Strom versorgt.

+0

danke dafür. es funktionierte !! –