2016-11-02 50 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