8
我有一個JavaScript表格填充從javascript數組,我有複選框的列,如果它是:checked
那麼整行應該每5秒更新一次,問題是我有一個大的fnRowCallback
函數,它不會在執行後執行因此更新了我所有的行結構的重疊。這裏是我的更新代碼:如何在不重繪表格的情況下更新數據表中的行?
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);
};
,這我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);
}
});
},
問題是: 如何重繪fnRowCallback
一個選定的行不重繪整個表,並保持它的檢查重繪後的狀態
編輯:
我再次檢查我的代碼,看到我的代碼被更新c orectly但問題是,我的代碼是通過ajax收到的方式在表中加載,而不是以我重新排序我的表列的方式
tnx回答你的答案几乎是正確的,我解決了它大約10個月前!但tnx它可以解決這個 – Homam
對不起,經過Unanswered,沒有看到日期。 –