Javascript 如何在数据表更新期间替换/删除行?
所以,我正在编写使用。但它似乎使用的是它的旧版本。所以,我的表每5秒更新一次,我所需要的就是当新数据进来时它完全更新。然而,当它输入新的更新时,表中不再引用的数据会留在那里,即使它会消失,我的表也会随着时间的推移变得越来越大。我尝试使用:Javascript 如何在数据表更新期间替换/删除行?,javascript,jquery,datatables,datatables-1.10,Javascript,Jquery,Datatables,Datatables 1.10,所以,我正在编写使用。但它似乎使用的是它的旧版本。所以,我的表每5秒更新一次,我所需要的就是当新数据进来时它完全更新。然而,当它输入新的更新时,表中不再引用的数据会留在那里,即使它会消失,我的表也会随着时间的推移变得越来越大。我尝试使用: Table.fnClearTable(); // throws error below TypeError: Cannot set property '_aData' of undefined Table.fnDestroy(); // doesn't se
Table.fnClearTable(); // throws error below
TypeError: Cannot set property '_aData' of undefined
Table.fnDestroy(); // doesn't seem to work either
"bDestroy":true // didn't seem to work, but I couldn't tell
这不管用。它删除了所有内容,但不允许我重建新表。我还尝试使用:
Table.fnClearTable(); // throws error below
TypeError: Cannot set property '_aData' of undefined
Table.fnDestroy(); // doesn't seem to work either
"bDestroy":true // didn't seem to work, but I couldn't tell
这就是我正在研究的特殊函数。我希望定期删除并重新创建表,或者更好地刷新进入其中的数据
my.updating.graph = function(obj, listAll) {
try {
if (obj == null || obj.updates == null || obj.updates.length == 0) {
$("#sectionUpdates").hide();
return;
}
$("#sectionUpdates").show();
var table = null;
if ($.fn.dataTable.isDataTable("updateTable")) { // may remove this statement...
table = $("#updateTable").dataTable();
} else {
table = $("#updateTable").dataTable({ // is there a reset option?
"paging": !listAll,
"pagingType": !listAll ? "X" : "Y",
"searching": true,
"order": [
[0, "desc"]
],
"ordering": true,
"oLanguage": {
"sEmptyTable": "No updates at this time"
},
"iDisplayLength": 15,
"info": false,
"formatNumber": function(format) {
return friendlyFormat(format, 1000, 0);
},
"aoColumns": [{
"bVisible": false
},
{
"className": "dt-center",
"width": "10%",
"iDataSort": 0,
"render": function(data, type, row) {
return extractData(data, type, row[0]);
}
}, {
"sType": "mixed-string",
"className": "dt-left",
"width": "30%",
"render": function(data, type, row) {
return getZData(data, type, row[1]);
}
}, {
"className": "dt-left",
"width": "30%",
"render": function(data, type, row) {
return getYData(data, type, row[2]);
}
}, {
"sType": "mixed-string",
"className": "dt-left",
"width": "30%",
"render": function(data, type, row) {
return getZData(data, type, row[3]);
}
}
]
});
$("#updateTable").resize(function() {});
}
var updates = obj.updates;
for (var i = 0; i < updates.length; i++) {
var update = updates[i];
var id = makeId(update.id);
var triggered = getCurrentUTC();
if (update) {
if (getID("updateTable", id) == null) {
var row = table.fnAddData([
update.field1,
update.field2,
update.field3,
update.field4
]);
var node = $("#updateTable").dataTable().fnSettings().aoData[row[0]].nTr;
node.setAttribute("id", "updateTable-item-" + id);
node.setAttribute("rowIdx", row[0]);
setID("updateTable", id, row[0]);
}
table.fnUpdate([
update.field1,
update.field2,
update.field3,
update.field4
], getID("updateTable", id),
null, false, false);
for (var q = 0; q < tblStatusClasses.length; q++) {
$("updateTable-item-" + id + " td:eq(0)").removeClass(tblStatusClasses[q]);
}
$("#updateTable-item-" + id + " td:eq(0)").addClass("table-state" + update.field1);
}
table.fnStandingRedraw();
}
} catch (e) {
console.log(e);
}
}
my.updateing.graph=函数(obj,listAll){
试一试{
if(obj==null | | obj.updates==null | | obj.updates.length==0){
$(“#节更新”).hide();
返回;
}
$(“#节更新”).show();
var表=null;
如果($.fn.dataTable.isDataTable(“updateTable”){//可以删除此语句。。。
table=$(“#updateTable”).dataTable();
}否则{
table=$(“#updateTable”).dataTable({//是否有重置选项?
“分页”:!listAll,
“pagingType::!listAll?”X:“Y”,
“搜索”:没错,
“命令”:[
[0,“描述”]
],
“排序”:正确,
“语言”:{
“sEmptyTable”:“目前没有更新”
},
“iDisplayLength”:15,
“信息”:错误,
“formatNumber”:函数(格式){
返回friendlyFormat(格式,1000,0);
},
“aoColumns”:[{
“可见”:假
},
{
“类名称”:“dt中心”,
“宽度”:“10%”,
“iDataSort”:0,
“渲染”:函数(数据、类型、行){
返回extractData(数据、类型、行[0]);
}
}, {
“sType”:“混合字符串”,
“className”:“dt left”,
“宽度”:“30%”,
“渲染”:函数(数据、类型、行){
返回getZData(数据、类型、行[1]);
}
}, {
“className”:“dt left”,
“宽度”:“30%”,
“渲染”:函数(数据、类型、行){
返回getYData(数据、类型、行[2]);
}
}, {
“sType”:“混合字符串”,
“className”:“dt left”,
“宽度”:“30%”,
“渲染”:函数(数据、类型、行){
返回getZData(数据、类型、行[3]);
}
}
]
});
$(“#updateTable”).resize(函数(){});
}
var updates=obj.updates;
对于(var i=0;i
为什么不升级到1.10?然后就很容易了,比如$(“#updateTable”).DataTable().clear()升级一个使用1.9版本、超过10000行(可能100000行)长的预先存在的项目会有多困难?有多少代码是datatables独有的?Alien说,他试图保持它向后兼容。我会试着改变包含的内容,看看是否有副作用。