我正在使用dataTables.js jQuery插件。
我的表的第一列是行计数器,所以我不希望用户对它进行排序。最后一列包含一些用户可以在一行上执行的操作链接。如何才能使这两列无法使用?
注意:我正在使用数据表的管道(服务器端进程)模式。
答案 0 :(得分:12)
这可以通过将bSortable设置为false来完成:
/* Using aoColumnDefs */
$(document).ready(function() {
$('#example').dataTable( {
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0 ] }
] } );
} );
/* Using aoColumns */
$(document).ready(function() {
$('#example').dataTable( {
"aoColumns": [
{ "bSortable": false },
null,
null,
null,
null
] } );
} );
答案 1 :(得分:8)
DataTables 1.10+也supports HTML5 data-
style attributes,包括data-sortable="false"
,这使得该列不符合排序条件:
<table>
<thead>
<tr>
<th data-sortable="false">Row</th>
<th>Name</th>
<th>Join Date</th>
<th>Organization</th>
<th data-sortable="false">Options</th>
</tr>
</thead>
<tbody>
<tr>
[etc]
</tr>
</tbody>
</table>
答案 2 :(得分:3)
aaSortingFixed
此参数基本相同 到aaSorting参数,但不能 被用户交互覆盖 桌子。这意味着你 可以有一个列(可见或 隐藏)排序将永远 先被迫 - 任何排序后 那(来自用户)将是 按要求执行。这可以 用于将行分组在一起。
使用示例:
$(document).ready( function() {
$('#example').dataTable( {
"aaSortingFixed": [[0,'asc'],[5,'asc']]
} );
} );
0
是您的“不合格”行的编号(左起)。 (因此在该示例中,第一列和第六列是固定的)
答案 3 :(得分:0)
您可以在单独的列中为支持不可更改的数字顺序定义回调函数:
$('#someId').dataTable({
// ...
"aoColumns": [
// ...
{"bSortable": false}, // set unsortable this column
// ...
],
fnDrawCallback: function(oSettings) {
$(this).find('tbody tr').each(function(index) {
$(this).find('td').eq(1).text(index + 1); // .eq([index of column])
});
}
});