2011-04-27 22 views
0

我有兩個標籤,它們的內容由ajax加載。在他們的內容中都有一張桌子。我想申請'datatable'jquery插件到這兩個表。表具有相同的id,因爲它們是由函數創建的,但它們的行是不同的。'datatable'jquery插件和兩個表的問題(與AJAX有關)

數據表插件被施加到第一接線片表很好,但是,從第二個給這個錯誤:

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

要檢索的DataTable對象此表,請通過其中沒有參數到DataTable()功能,或將bRetrieve設置爲true。或者,爲了破壞舊錶並創建一個新表,請將bDestroy設置爲true(請注意,可以通過API進行很多配置更改,通常速度會更快)。「

我使用」bDestroy「 :在這樣的插件不會在第二個表顯示的數據表插件define.but真正

,你會幫我

回答

3

您的問題是,兩個表都有相同的ID,這是無效的HTML。當您嘗試初始化第二個Databable時,您的選擇器僅查找第一個表,並嘗試再次初始化第一個表上的Datatables,這會導致您遇到的錯誤。

您需要更改函數以創建具有唯一ID的每個表並使用其各自的ID初始化每個表。

1

爲什麼不通過一個類名設置的數據表,而不是ID則可以申請?他們都是?

當檢索數據時,你可以使用類似$('。dataTableStyle')。eq(1)的信息從第相關的一個。

+0

我嘗試類而不是id,但沒有任何反應both.plugin不適用於他們沒有。 – 2011-04-27 07:02:39

+0

這可能是因爲您的標籤設置。閱讀Jquery關於使製表符離開屏幕(例如-2000px)的文檔,而不是display = none,因爲使用默認選項卡設置時很多元素不起作用。 – niggles 2011-04-27 22:41:56

0

我正在使用mvc3,我的問題是在視圖中初始化一個dataTable,然後用另一個dataTable渲染一個局部視圖。這個問題不在2個表的id中,而是以部分視圖在框架中呈現的方式。就我而言,我不得不將腳本或引用腳本移動到託管部分視圖的視圖中。我有一個類似於使用Google Maps API的問題。

0

試試這個代碼功能事件

$(document).ready(function() { 
     oTable = $('#DataTables_Table_0').dataTable({ //DataTables_Table_0 <-------table id 
       iVote: -1, //your field name 
       "bRetrieve":true 
      }); 

     oTable.fnSort([ [1,'desc'] ]); 
    }); 
0

使用這個時候你會改變你的表數據

$('#tbl_resultates').dataTable().fnDestroy(); 

,並添加

"bRetrieve": true, 

$('#tbl_resultates').dataTable({