Hom*_*mam 8 javascript arrays jquery jquery-datatables
我有一个从javascript数组填充的dataTables v1.9.4,我有复选框列,如果它是: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);
};
Run Code Online (Sandbox Code Playgroud)
这个我的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);
}
});
},
Run Code Online (Sandbox Code Playgroud)
问题是:
如何在fnRowCallback不重绘整个表的情况下重绘单个选定的行,并在重绘
EDIT后保持其检查状态:
我仔细检查了我的代码并看到我的代码正在更新corectly但问题是我的代码加载了表格通过ajax收到的方式不是我重新排序我的表格列的方式
您可以使用 fnUpdate。基本上它按行索引工作,并且必须插入该行的所有值(例如,当您有 4 列时,不能输入 2 个值)
以下是该方法 API 的链接:jQuery DataTable fnUpdate
我认为它会触发行回调,但我不确定。
| 归档时间: |
|
| 查看次数: |
17421 次 |
| 最近记录: |