clear ordering from dataTables stateSave

2020-02-15 03:15发布

I have Datatable with statesave and header filter, see below code.

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">'
 });

here is the code for Statesave and applying filtered value.

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();
        });
    });

What I Want?

My main priority is to remove sorting from statesave, I mean if user refresh page, sorting should be on default column.

but at that time filter should be work with statesave.

What I did?

I tried to add code like this.

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

and I also got saved column in state but cannot reorder it to default.

1条回答
聊天终结者
2楼-- · 2020-02-15 04:11

Have you looked at stateLoadParams?

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

Will effectively reset the saved sorting order on each refresh.

查看更多
登录 后发表回答