Ich habe DataTables v1.9.4 von einem Javascript-Array bevölkert und ich habe Kontrollkästchen Spalte, die, wenn es :checked
dann die ganze Zeile alle 5 Sekunden aktualisiert wird, das Problem ist, dass ich eine große fnRowCallback
Funktion habe, die nicht nach Zeile ausgeführt wird Update also alle meine Zeilenstruktur Colapses. hier ist mein Update-Code:Wie aktualisiert man eine Zeile in Datatables ohne Tabellenneuaufbau?
function updateRow(){
newRowData = $.data(document.body, 'updatedData');
var newRow = [];
newRow.push(1, 1);
for (var title in newRowData[0]){
newRow.push(newRowData[0][title]);
}
oTable.fnUpdate(newRow, updateIndex, false, true);
};
und das ist mein fnRowCallback
:
"fnRowCallback": function(nRow, aData, iDisplayIndex) {
//make 3state button and indicator for relay mask & status
$('td.relay', nRow).each(function(){
relayStatus = $(this).text();
$(this).html('<div class="hidden-value">' + relayStatus + '</div><div></div>');
if(relayStatus == 1){
$(this).children('div:last').addClass('relmas1');
}
if(relayStatus == 0){
$(this).children('div:last').addClass('relmas0');
}
if(relayStatus == -1){
$(this).children('div:last').addClass('relmas-1');
}
});
//makes update checkboxes
var clientID = $('td.clientid', nRow).text();
$('td.update', nRow).html('<input type="checkbox" data-clientid="' + clientID + '" />');
//makes volumes
var cuVol = parseInt($('td.volume', nRow).text(), 10)
$('td.volume', nRow).html('<div class="volume-container"><div class="volume-tmp">' + cuVol + '</div><div class="volume-slider"></div></div>')
$('td.volume div.volume-slider', nRow).slider({
value: cuVol,
range: "min",
orientation: "horizontal",
slide: function(event, ui) {
cuVol = ui.value;
$(this).siblings('div.volume-tmp').text(ui.value);
}
});
},
das Problem ist: , wie eine einzelne ausgewählte Zeile mit fnRowCallback
neu zu zeichnen, ohne die gesamte Tabelle neu zu zeichnen und halten seine geprüft Zustand nach Neuzeichnen
EDIT:
Ich habe meinen Code doppelt überprüft und sehe, dass mein Code aktualisiert wird c orcectly aber das Problem ist, dass mein Code in der Tabelle in der Art geladen wird, wie es über Ajax empfangen wird, nicht in der Art, wie ich meine Tabellenspalten neu anlegte
tnx für antwort deine antwort ist fast korrekt und ich löste es etwa 10 monate vorher! aber tnx es cansolve – Homam
sorry, ging durch Unbeantwortete, sah das Datum nicht. –