2017-07-05 51 views
1

我有一個數據表。第一列是位置並且是增量,因此示例具有1,2,3,4。顯示行所在的位置。其餘列需要排序。因此,按工作次數或總價值排序時,第一列保持不變,但其餘的更改。數據表。修復第一列所以不能排序

我已經嘗試過使用固定列,但這不是我想要的。

<table class="datatable"> 
         <thead> 
          <tr> 
           <th>Position</th> 
           <th class="no-sort">Name</th> 
           <th class="no-sort">Jobs</th>         
           <th class="no-sort">Labour</th> 
           <th class="no-sort">Total</th> 
          </tr> 
         </thead> 
         @{int count = 1;} 
         @foreach (Model make in Model.Models) 
         { 
          <tr> 
           <td>@(count)</td> 
           <td>@make.Name</td> 
           <td>@make.Jobs</td> 
           <td>@Math.Round(make.Labour, 2)</td> 
           <td>@Math.Round(make.Total, 2)</td> 
          </tr> 
          { count++; } 
         } 
        </table> 


    var Table = $('.datatable').dataTable({ 
     "bJQueryUI": true, 
     "sPaginationType": "full_numbers", 
     "bScrollCollapse": true, 
     "bFilter": false, "bInfo": false, 
     "aaSorting": [[2, 'desc']], 
     "columnDefs": [ { 
      "targets": 'no-sort', 
      "orderable": false, 
     } ], 
     "aoColumns": [ 
      { "bSearchable": false }, 
      { "bSearchable": false }, 
      { "bSearchable": false }, 
     { "bSearchable": false }, 
      { "bSearchable": false }, 
      { "bSearchable": false } 
     ] 
    }); 
+0

,所以你需要改變第一列或不 – Bhargav

+0

沒有我想的第一列將被永久固定。所有其他列可排序 – Beginner

+0

添加目標:[0]並嘗試它 – Bhargav

回答

0

您可以通過添加Counter Column包含每個行的表中的位置實現這一功能。只要在DataTable上執行searchingordering操作,就需要動態添加它。

oTable.on('order.dt search.dt', function() { 
     oTable.column(0, {search:'applied', order:'applied'}).nodes().each(function (cell, i) { 
      cell.innerHTML = i+1; 
     }); 
    }).draw(); 

請參閱此Example進行演示。

JSFiddle Demo

+0

thansk工作 – Beginner

+0

我很高興我能夠幫助你。歡迎兄弟。 :-) – mmushtaq

0

請試試這個在您的數據表代碼:

"columnDefs": [ 
    { "orderable": false, "targets": 0 } 
] 
+0

nope does not work – Beginner

+0

我認爲它應該work.please看看這個小提琴https://jsfiddle.net/6yxvxt7L/22/ –