jQuery:数据表查询



我使用jQuery数据表插件渲染表作为jQuery数据表。我没有使用任何服务器端调用来获取表行细节。

我正在使用jQuery从用户当前正在查看的页面上可用的信息生成表HTML。

<table cellpadding="0" cellspacing="0" border="0" class="display" id="list_table"> <thead> </thead> <tbody> </tbody> </table>

当用户单击链接时,我使用jQuery为表构建所需的行,并将其设置为表主体。

之后,我初始化dataTable,如下所示:

$('#list_table').dataTable({ "bProcessing": false, "bJQueryUI": true, "bPaginate": true,
"bAutoWidth": false, "bFilter" : true, "bDestory" : true,
"oLanguage": { "sZeroRecords": "No data available", "sSearch" :"Filter" } });

当用户第一次点击链接时,上面的工作正常。但如果用户再次点击,I get error dataTable给出错误:

DataTables warning (table id = 'list_table'): Cannot reinitialise DataTable. .....

即使表被显示,它也失去了它的Datatable CSS,搜索不再工作,下一个先前不再工作。

我尝试了各种选项,如设置"bRetrieve" : true也尝试检查数据表对象是否可用:

 if (typeof dTable == 'undefined') {
         dTable = $('#list_table').dataTable({
              "bProcessing": false,
              "bJQueryUI": true,
              "bPaginate": true,    
              "bAutoWidth": false,
              "bFilter" : true,
              "bDestory" : true,                  
              "oLanguage": { "sZeroRecords": "No data available", "sSearch" :"Filter" }
        });
    } else {
        dTable.fnClearTable();
    } 

但是似乎什么都不起作用。我已经使用DataTable与服务器端ajax调用重新加载数据从服务器,它的工作很好,但在这种情况下,我不知道如何解决这个问题。

谢谢。Jay

如果dataTable已经被初始化,它不能再初始化,所以如果dataTable不是空的,你可以尝试像这样销毁dataTable:

if(oTable!=null) oTable.fnDestroy();

你会在dataTable论坛上得到更好的回答…因为在这里我们分享了一些对所有人都有用的常见问题。

这里是该论坛的链接。<<strong> DataTable论坛/strong>

这个问题的一个快速而简单的修复方法是将初始表放入div中,并在再次构建表之前对该div运行empty().append()。我认为bDestroy参数会照顾css和列标题的问题,但它没有。希望这对大家有所帮助!

最新更新