2016-03-28 3 views
1

Ich versuche, einen Zellenwert mithilfe von DataTable (die neue Version) zu ändern, wenn auf eine externe Schaltfläche geklickt wird. Ich habe nach dem jetzt:So legen Sie Zellenwert in DataTable auf Schaltfläche klicken

$(document).on('click', '.dropdown-menu li a', function() { 
    if ($(this).text() == "development") { 
     var cell = table.row(6).data()[4]  
     cell.data("development").draw(); 
    } 
}); 

Das funktioniert nicht, da ich die Tabellenzeile und Datenwiedergewinnungsverfahren denke nicht, ein Objekt mit .data zurückgibt() Attribut, das mir Datenzelle Wert setzen . Ich erhalte den folgenden Fehler: cell.data is not a function. (In 'cell.data("development")', 'cell.data' is undefined) Allerdings bin ich mir nicht sicher, wie man auf einen Tabellenzellenwert auf die .data() - Weise zugreifen kann, ohne einen Klick sogar in der Tabelle zu haben. Mein Knopf wird woanders außerhalb des Tisches platziert.

Haben Sie eine Idee, wie das funktioniert?

Antwort

1

können Sie fnUpdateDatatables Funktion verwenden, um bestimmte Zellen nur nach Zeilen- und Spaltenindizes zu aktualisieren.

etwas wie folgt aus:

var oTable = $('#example').dataTable(); 
$('#button').click(function() { 
    var row = document.getElementById("indexDepRow").value; 
    var col = document.getElementById("indexDepCol").value; 
    oTable.fnUpdate('development', parseInt(row), parseInt(col)); 
}); 

Siehe JsFiddle EXAMPLE

1

Da Tables 1.10+ nicht fnGetNodes unterstützen könnten(), wie auf der API Zielseite erwähnt selbst, statt jetzt können Sie Zeilen() verwenden Knoten.().

Beispiel: http://jsfiddle.net/cmedina/7kfmyw6x/28/

var table = $('#example').DataTable({sorting : false}); 
var row = table.row(0).node(); 

$('#test').on('click', function() { 
    var text = "development"; 
    if (text == "development") { 
     table.cell(row, 0).data('Development').draw(); 
    } 
}); 

Wenn Sie mit Tables arbeiten < 1.10, dann können Sie fnUpdate verwenden

Beispiel: http://jsfiddle.net/cmedina/7kfmyw6x/29/

var oTable = $('#example').dataTable({sorting:false}); 

$('#test').on('click', function() { 
    var text = "development"; 
    if (text == "development") { 
    oTable.fnUpdate('Development', 0, 0); // Single cell 
    } 
})