刷新数据表时出错-无法重新初始化数据表
Error while refreshing datatables - Cannot reinitialise DataTable
我有一个json数据,它包含两个带有多个对象的数组,我已经编写了以下代码,使我只能进行一次调用,并将结果拆分为两个表。我现在的问题是我不能再刷新表格了。我尝试了不同的选项,但得到无法重新初始化DataTable,这是有道理的,所以我想我现在被卡住了。
代码:
$(document).ready(function (){
setInterval (function(){
$.getJSON("ajax/json.txt", function (pcheckdata){
<!-- ------------------- Extract Only Alerts ---------------------- -->
$('#alert-table').dataTable({
"bJQueryUI": true,
"data": pcheckdata.alerts,
"columns": [
{ "mData": "host" },
{ "mData": "description" }
],
});
<!-- ------------------- Extract Only Errors ---------------------- -->
$('#error-table').dataTable({
"bJQueryUI": true,
"data": pcheckdata.errors,
"columns": [
{ data: 'host' },
{ data: 'description' }
],
});
});
}, 1000);
});
我的JSON结构
{
"alerts": [
{
"host": "server1",
"description": "Engine Alive"
},
{
"host": "ftpserver",
"description": "Low free disk space"
}
],
"errors": [
{
"host": "server3",
"description": "Can't connect to MySQL server"
},
{
"host": "server4",
"description": "SSQL timeout expired"
}
]
}
HTML位:
<table id="alert-table" class="display" cellspacing="0">
<thead class="t-headers">
<tr>
<th>HOST</th>
<th>DESCRIPTION</th>
</tr>
</thead>
</table>
<table id="error-table" class="display" cellspacing="0">
<thead class="t-headers">
<tr>
<th>HOST</th>
<th>ERROR DESCRIPTION</th>
</tr>
</thead>
</table>
我很想知道是否有办法同时刷新这两个表,因为数据只会被提取一次,还是最好纯粹使用JQUERY,忘记数据表,因为这似乎让我头疼
为什么要重新命名整个表,只需创建一次表,然后在ajax回调中清除表并添加数据。您正在使用哪个版本的数据表?我使用了旧函数来清除和添加数据,使用新表会有所不同,但你知道这个想法。
这里有一个例子:
$(document).ready(function (){
//Init datatables without data
<!-- ------------------- Extract Only Alerts ---------------------- -->
var alertTable = $('#alert-table').dataTable({
"bJQueryUI": true,
"columns": [
{ "mData": "host" },
{ "mData": "description" }
],
});
<!-- ------------------- Extract Only Errors ---------------------- -->
var errorTable = $('#error-table').dataTable({
"bJQueryUI": true,
"columns": [
{ data: 'host' },
{ data: 'description' }
],
});
setInterval (function(){
$.getJSON("ajax/json.txt", function (pcheckdata){
alertTable.fnClearTable(); //New API then alertTable.clear().draw();
alertTable.fnAddData(pcheckdata.alerts); //New API then alertTable.row.add(pcheckdata.alerts);
alertTable.fnAdjustColumnSizing(); //New API then alertTable.columns.adjust().draw();
errorTable.fnClearTable(); //New API then errorTable.clear().draw();
errorTable.fnAddData(pcheckdata.errors); //New API then errorTable.row.add(pcheckdata.errors);
errorTable.fnAdjustColumnSizing();////New API then errorTable.columns.adjust().draw()
});
}, 1000);
});
另一种方法是检查数据表是否已经初始化。
$(document).ready(function (){
setInterval (function(){
$.getJSON("ajax/json.txt", function (pcheckdata){
//Is datatable already init.
if ( ! $.fn.DataTable.isDataTable( '#alert-table' ) ) {
<!-- ------------------- Extract Only Alerts ---------------------- -->
$('#alert-table').dataTable({
"bJQueryUI": true,
"data": pcheckdata.alerts,
"columns": [
{ "mData": "host" },
{ "mData": "description" }
],
});
}else
{
$('#alert-table').dataTable().clear().draw();
$('#alert-table').dataTable().row.add(pcheckdata.alerts);
$('#alert-table').dataTable().columns.adjust().draw();
}
if ( ! $.fn.DataTable.isDataTable( '#error-table' ) ) {
<!-- ------------------- Extract Only Errors ---------------------- -->
$('#error-table').dataTable({
"bJQueryUI": true,
"data": pcheckdata.errors,
"columns": [
{ data: 'host' },
{ data: 'description' }
],
});
}else
{
$('#error-table').dataTable().clear().draw();
$('#error-table').dataTable().row.add(pcheckdata.errors);
$('#error-table').dataTable().columns.adjust().draw();
}
});
}, 1000);
});
相关文章:
- jquery数据表在初始化时设置宽度
- 如何销毁数据表的首次初始化(模态内的数据表)
- AngularJS中共享数据服务初始化失败
- 使用AngularJS初始化数据表
- Jquery 数据表 序列化程序之后 ASP.NET 日期格式
- jQuery数据表编辑器未初始化
- Websql 表初始化错误
- 初始化后如何更改数据表的数据
- 初始化 jQuery 数据表中的搜索输入
- 无法在按钮单击Ajax调用时初始化Jquery数据表
- 数据表初始化完成回调未触发
- 来自 API 的工具提示数据未初始化
- 从数据属性初始化JQuery插件
- 使用动态数据json初始化同位素
- 数据表初始行
- jquery addClass没有正确执行"on"(ex live) jquery方法和数据表初始化
- 数据表初始化关键字与官方示例不同
- 数据表初始化ajax请求初始值
- 数据表初始化警告
- 数据表:如何在表初始化代码中放入变量