我有一个关于如何从排序中排除行(tr)的问题。我想制作类似http://jsfiddle.net/rishijagati/WwDg8/213/的内容,但我不想在jQuery中设置隐藏行的数据。
我想你可以在<tr>
元素中添加一个类,然后在初始化jQuery上的数据表时管理不对这个<tr>
进行排序。
实际上我有这样的初始化:
$('.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
用于不对列进行排序,这不适用于行。
现在总是显示此消息,但我已经取得了手风琴效果,但排序无效。
未捕获的TypeError:无法设置属性&#39; _DT_CellIndex&#39;未定义的
我的表是这样的:
<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>
答案 0 :(得分:2)
这对我有用:
<table>
<thead>
...
</thead>
<tbody>
...
</tbody>
<tfoot>
<tr class="no-sort">
<td>...</td>
<td>...</td>
</tr>
</tfoot>
</table>
答案 1 :(得分:0)
来自columnDefs.targets
选项的文档:
...类名称将与列的
TH
匹配(不含前导.
)
因此,您必须将类datatable-nosort
应用于标题中的TH
元素。
最有可能发生另一个错误,因为DataTables不支持表正文中的colspan
或rowspan
。要显示其他详细信息,请改用child row functionality。