2016-04-27 42 views
0

在其他網頁上我有一個包含這樣jQuery的數據表選擇行比1

$('.bt-datatable').DataTable(
     { 
     info: false, 
     paging: true, 
     pageLength: 5, 
     "aoColumnDefs": [ 
      { "bSearchable": false, "aTargets": [ 1, 2, 3 ] } 
     ] 
     } 
); 

一個數據表,這是我的數據表的Html它具有循環在Ruby語言編碼,從而創建多行根據用戶記錄

<div class="table-responsive"style="display: none"> 
      <hr> 
      <table class="bt-datatable table table-striped click-row-datatable" cellspacing="0" width="100%"> 
      <thead> 
      <tr> 
       <th class="text-left">Name</th> 
       <th class="text-left">Status</th> 
       <th class="text-left">Start Date</th> 
      </tr> 
      </thead> 
      <tbody> 
      <% 
       @users.each do |user| 

      %> 
       <tr class='clickable-row' rel="<%= user.id %>"> 
        <td class="text-left"><%= user.name %></td> 
        <td class="text-left"><%= user.status %></td> 
        <td class="text-left"><%= user.start_time %></td> 

       </tr> 
      <% end %> 
      </tbody> 
      </table> 
     </div> 

我有保存在flash[:user_id]

紅寶石閃光燈可變我在做什麼是不知何故,我得到閃光[:user_i d]保存,並根據我想強調,其rel屬性等於刷新行[:USER_ID]

這是在頁面加載時

var ele = $('[rel="<%= flash[:user_id] %>"]'); 
    ele.addClass('bg-info'); 

的addClass是突出在該行的JavaScript數據表,但我面臨的問題是,當用戶ID行讓我們說在另一頁上比第一它不會加載該表上,甚至沒有突出顯示,而只是突出顯示當該用戶在第一頁

+0

您存儲數據庫,以使它在其他頁面上可用。 'localStorage'非常適合這個用途。 –

回答

0

Datatables有一個$()函數,您可以使用該函數在整個t中運行jQuery選擇器能夠,而不僅僅是可見的行。對你來說,這將是這樣的:

var table = $('.bt-datatable').DataTable(
    { 
    info: false, 
    paging: true, 
    pageLength: 5, 
    "aoColumnDefs": [ 
     { "bSearchable": false, "aTargets": [ 1, 2, 3 ] } 
    ] 
    } 
); 

var ele = table.$('[rel="<%= flash[:user_id] %>"]'); 
ele.addClass('bg-info'); 

但是,因爲它似乎你已經知道紅寶石使得它的時間要突出哪一行,豈不是更好地讓紅寶石處理呢?喜歡的東西(免責聲明:我不熟悉的紅寶石):

<tr class='clickable-row <% if user.id == flash[:user_id] %> bg-info<% end %>'> 

第二部分

要顯示的頁面,選擇行,你可以使用row().show()插件。要做到這一點,你需要添加插件腳本,並在代碼中,該行稱show()以顯示正確的頁面:

var ele = table.$('.bg-info'); // TR element (assuming you used ruby to add the class) 
var row = table.row(ele); // Datatables row 
row.show().draw(false); // Show the page this row is in (and draw it) 

或更短:

table.row('.bg-info').show().draw(false); 
+0

部分工作,因爲我得到的用戶突出顯示,但該數據表的頁面不出現選擇, 問題是什麼時候會有數千用戶在表中說,如果突出顯示的用戶是在第20頁我想預加載數據表上的第20頁 – user4965201

+0

@ user4965201我認爲這是你想要的。您應該編輯您的問題以添加此要求 –