2017-04-26 46 views
1

我有數據表與狀態和過濾器,請參閱下面的代碼。明確訂購數據表狀態保存

dttblEnrolledUser = $('#tblUsers').dataTable({ 
      paging: true, 
      searching: true, 
      bLengthChange: false, 
      info: false, 
      ordering: true, 
      columnDefs: 
       [{ targets: 0, orderable: false }, 
       { targets: 5, orderable: false }], 
      order: [1, 'asc'], 
      stateSave: true, 
      dom: '<"top"i>rt<"bottom"flp><"clear">' 
}); 

這裏是Statesave代碼和應用的濾波值。

var state = dttblEnrolledUser.api().state.loaded(); 
    if (state) { 
     dttblEnrolledUser.api().columns().eq(0).each(function (colIdx) 
     { 
      var colSearch = state.columns[colIdx].search; 
      if (colSearch.search) { 
       $('input', dttblEnrolledUser.api().column(colIdx).header()).val(colSearch.search); 
      } 
     }); 

     dttblEnrolledUser.api().draw(); 
    } 

// Apply the search 
dttblEnrolledUser.api().columns().eq(0).each(function (colIdx) { 
     $('input', dttblEnrolledUser.api().column(colIdx).header()).on('keyup change', function() { 
      dttblEnrolledUser.api() 
       .column(colIdx) 
       .search(this.value) 
       .draw(); 
     }); 
    }); 

我想要什麼?

我的主要優先事項是從statesave中刪除排序,我的意思是如果用戶刷新頁面,排序應該在默認列上。

但是在那個時候過濾器應該可以使用stateave。

我幹了什麼?

我試着添加這樣的代碼。

https://datatables.net/reference/api/state.clear()

,我也得到了在狀態保存的列,但不能訂貨它爲默認值。

回答

2

你看過stateLoadParams

dttblEnrolledUser = $('#tblUsers').dataTable({ 
    ... 
    stateLoadParams: function(settings, data) { 
    if (data.order) delete data.order; 
    } 
}) 

將有效地重置每個刷新保存的排序順序。

+0

哦,我不知道我是如何錯過這個的,謝謝..它的工作.. – Bharat