【问题标题】:jQuery: DataTables queryjQuery:数据表查询
【发布时间】:2011-04-19 12:02:23
【问题描述】:

我正在使用 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" } });

当用户第一次点击链接时,上述工作正常。但是如果用户再次点击,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 调用一起使用以从正常工作的服务器重新加载数据,但在这种情况下,我不确定如何解决此问题。

谢谢。 周杰伦

【问题讨论】:

  • 在点击该链接时,您只是在附加正文内容或从表格开始,头...?
  • 把这个问题显示在jsfidle上会更好..

标签: jquery jquery-plugins datatables


【解决方案1】:

如果dataTable已经初始化了,就不能再初始化了,所以如果dataTable不为null,你可以试试这样销毁dataTable

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

那么你就可以解决问题了。

【讨论】:

    【解决方案2】:

    您将在 dataTable 论坛上得到更好的回答...因为我们在这里分享了一些常见问题,这些问题对所有人都有效。

    这是该论坛的链接.. DataTable forum

    【讨论】:

    【解决方案3】:

    解决此问题的一个快速简单的方法是将初始表放在一个 div 中,并在该 div 上运行 empty().append(),然后再次构建表。我认为 bDestroy 参数会处理 css 和列标题问题,但它没有。希望这对某人有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多