从数据表中清除排序 stateSave

Bha*_*rat 2 jquery datatables

我有带有状态保存和标头过滤器的数据表,请参阅下面的代码。

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">'
 });
Run Code Online (Sandbox Code Playgroud)

这是 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();
        });
    });
Run Code Online (Sandbox Code Playgroud)

我想要的是?

我的主要优先事项是从 statesave 中删除排序,我的意思是如果用户刷新页面,排序应该在默认列上。

但那时过滤器应该与statesave一起使用。

我做了什么?

我尝试添加这样的代码。

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

我还保存了状态列,但无法将其重新排序为默认值。

dav*_*rad 6

你看过吗stateLoadParams

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

将在每次刷新时有效地重置已保存的排序顺序。