2016-11-02 52 views
1

我有一个关于如何从排序中排除行(tr)的问题。我想制作这样的http://jsfiddle.net/rishijagati/WwDg8/213/,但我不想在jQuery中设置隐藏行的数据。 我想你可以在<tr>元素中添加一个类,然后在jQuery上初始化数据表的时候设法不对这个<tr>进行排序。 其实我有这样的初始化:从排序中排除行 - Datatables.net

$('.ordered_table').dataTable({ 
     "sPaginationType": "full_numbers", 
     "dom": '<"toolbar">frtip', 
     "pagingType": "numbers", 
     "searching": false, 
     "pageLength": 20, 
     columnDefs: [{ 
      targets: ['datatable-nosort'], 
      orderable: false, 
      bsortable: false 
     }], 
     "aaSorting": [] 
}); 

datatable-nosort是不排序的列上,这是不适合行。

现在总是显示此消息,但是我已经制作了手风琴效果,但排序不起作用。

Uncaught TypeError: Cannot set property '_DT_CellIndex' of undefined

我的表是这样的:

<tr class="tr_tbody accordion"> 
    <td><%= order.id %></td> 
    <td><%= order.created_at.strftime("%d/%m/%Y") %></td> 
    <td><%= order.exhibitor_corporate_name %></td> 
    <td><%= order.candidate_first_name %> <%= order.candidate_last_name %></td> 
    <td><%= !order.engagements.first.nil? ? order.engagements.first.date.strftime("%d/%m/%Y") : '' %></td> 
    <td><%= !order.engagements.last.nil? ? order.engagements.last.date.strftime("%d/%m/%Y") : '' %></td> 
    <% 
    number = @total_hours 
    parts = number.to_s.split(".") 
    result = parts.count > 1 ? parts[1].to_s : 0 
    result = '0' + '.' + result.to_s 
    hours = parts.count > 1 ? parts[0].to_s : 0 
    %> 
    <td class="datatable-nosort"> 
     <%= hours.to_s %> 
     <%= 'h. ' %> 
     <%= (result.to_f*60).to_i %> 
     <%= 'm.' %> 
    </td> 
    <td><%= @price_ngage %>€</td> 
    <td></td> 
</tr> 
<tr > 
    <td colspan="9"> 
    Order details 
    </td> 
</tr> 

回答

1

columnDefs.targets选项的文档:

... class name will be matched on the TH for the column (without a leading .)

所以你必须申请datatable-nosort类头中的TH元素。

发生了另一个错误的可能性很大,因为DataTable不支持表体中的colspanrowspan。要显示更多详细信息,请改为使用child row functionality