2011-04-19 43 views
0

我正在使用jQuery Datatable插件將表格呈現爲jQuery DataTable。我沒有使用任何服務器端調用獲取表格行詳細信息。jQuery:DataTables查詢

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

上述工作正常時,鏈接首次用戶點擊。但是,如果用戶再次點擊時,我得到錯誤的dataTable給出了錯誤:

DataTables warning (table id = 'list_table'): Cannot reinitialise 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(); 
    } 

但似乎沒有任何工作。我已經使用DataTable與服務器端ajax調用來重新從服務器上的數據,它可以正常工作,但在這種情況下,我不知道如何解決這個問題。

謝謝。 Jay

+0

點擊該鏈接時,您只附加正文內容或從表格開始,thead ...? – Vivek 2011-04-19 12:15:58

+0

它會更好,如果你在jsfidle上顯示這個問題.. – Vivek 2011-04-19 12:19:45

回答

1

你會在dataTable論壇上得到更好的回答你的問題...因爲在這裏我們分享了一些常見問題,這些問題對所有人都是完全有用的。

這裏是鏈接爲論壇.. DataTable forum

+1

http://datatables.net/forums/comments.php?DiscussionID=4776 艾倫幫我解決了它。感謝您的幫助。 – 2011-04-24 14:10:39

+0

所以如果它可以幫助你,那麼你也可以接受的答案... :) – Vivek 2011-04-25 03:03:29

+0

你去... :) – 2011-04-27 10:43:26

1

一個快速和簡單的辦法解決這個問題是把你的初始表一個div內部並運行一個空的()。追加()在之前的div再次建立表格。我認爲bDestroy參數會照顧css和列標題問題,但它沒有。希望這可以幫助別人!

4

如果數據表已經被初始化,就不能再次初始化,所以如果dataTable不爲空,你可以嘗試破壞dataTable這樣的:

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

,那麼你就可以解決問題。