删除列的排序

时间:2017-08-28 08:56:30

标签: datatables

尝试关闭表格中特定列的排序,但错误的列会受到影响吗?谁能看到我在这里失踪的东西?

HTML

<table id="tableListing" class="table table-striped table-hover">
<thead>
  <tr>
   <th class="no-sort"></th>
   <th>Personnumer</th>
   <th>Namn</th>
   <th>Skapad</th>
   <th class="no-sort"></th>
  </tr>
 </thead>


<tbody>
 <tr>
  <td><a href="member_search.aspx?del=85&fn=&ln=&pn=" onclick="return confirm('Är du SÄKER? All information kommer raderas och kan inte återställas!'); return false;" class="btn btn-danger btn-xs">radera</a></td>
  <td>630214-0410</td>
  <td>DEAD3, Test</td>
  <td>2017-07-18 19:07:12</td>
  <td><a href='member_details.aspx?id=85'>info</a></td>
 </tr>

 <tr>
  <td><a href="member_search.aspx?del=86&fn=&ln=&pn=" onclick="return confirm('Är du SÄKER? All information kommer raderas och kan inte återställas!'); return false;" class="btn btn-danger btn-xs">radera</a></td>
  <td>650301-4257</td>
  <td>Doe, John</td>
  <td>2017-07-31 22:14:50</td>
  <td><a href='member_details.aspx?id=86'>info</a></td>
 </tr>
</tbody>
</table>

JS

$("#tableListing").DataTable({           
        "lengthMenu": [[50, 100, 150, 200, 250, -1], [50, 100, 150, 200, 250, "All"]],
        "iDisplayLength": 100,
        "order": [],
        "columnDefs": [{
            "targets": 'no-sort',
            "orderable": false
        }]
    });

非常感谢!

编辑:添加了如何结果的图像。如您所见,错误的列会受到影响。

enter image description here

3 个答案:

答案 0 :(得分:1)

如果您只想停用特定列的排序,可以这样做:

$('#tableListing').DataTable({
    columnDefs: [
        { "orderable": false, "targets": [ 0, 4 ] }
    ]
});

或者您可以添加类似&#34; no-sort&#34;到要阻止排序的列标题。

<thead>
  <tr>
   <th class="no-sort"></th>
   <th>Personnumer</th>
   <th>Namn</th>
   <th>Skapad</th>
   <th class="no-sort"></th>
  </tr>
 </thead>

然后在DataTable定义中使用它:

$('#tableListing').DataTable({
        columnDefs: [
            { "orderable": false, "targets": 'no-sort' }
        ]
    });

答案 1 :(得分:0)

您还可以将特定列用作

$(document).ready(function() {
oTable = jQuery('#tableListing').dataTable( {           
            "bDestroy": true,
            "bAutoWidth": true,  
            "bFilter": true,
            "bSort": true, 
            "aaSorting": [[0]],         
            "aoColumns": [
                { "bSortable": false },
                { "bSortable": true },
                { "bSortable": true },
                { "bSortable": true },
                { "bSortable": true },
                { "bSortable": true },
                { "bSortable": false }
            ]   
        } );
 })

您可以排除不希望排序的列,将bSortable设置为false。

答案 2 :(得分:-1)

那么,在jQuery DataTables的新版本1.10中,您必须使用排序选项来禁用整个表的排序:

$('#tableListing').DataTable({
    "ordering": false
});