jQuery:DataTables查询

| 我正在使用jQuery Datatable插件将表呈现为jQuery DataTable。我没有使用任何服务器端调用来获取表行详细信息。 我正在使用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\" } });
当用户首次单击该链接时,以上方法可以正常工作。但是,如果用户再次单击,我得到的错误数据表将给出错误:
DataTables warning (table id = \'list_table\'): Cannot reinitialise DataTable. .....
即使显示该表,它也会丢失其Datatable CSS,搜索不再起作用,下一个先前的不再起作用。 我尝试了各种选项,例如设置
\"bRetrieve\" : true
,还尝试检查datatable对象是否可用:
 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();
    } 
但是似乎没有任何作用。我已经在服务器端ajax调用中使用了DataTable从服务器上正常工作的服务器中重新加载数据,但是在这种情况下,我不确定如何解决此问题。 谢谢。 杰伊
已邀请:
您将在dataTable论坛上更好地回答您的问题...因为在这里我们共享了一些常见问题,这些问题已被所有人使用。 这是该论坛的链接。 DataTable论坛
如果dataTable已初始化,则无法再次初始化,因此如果
dataTable
不为null,则可以尝试破坏
dataTable
,如下所示:
if(oTable!=null) oTable.fnDestroy();
那么您就可以解决问题。
解决此问题的一种快速简便的方法是将初始表放在div中,然后在再次构建表之前对该div运行empty()。append()。我以为bDestroy参数可以解决CSS和列标题问题,但事实并非如此。希望这对某人有帮助!

要回复问题请先登录注册