2016-04-27 55 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我认为这是你想要的。您应该编辑您的问题以添加此要求 –