我有带有状态保存和标头过滤器的数据表,请参阅下面的代码。
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()
我还保存了状态列,但无法将其重新排序为默认值。
你看过吗stateLoadParams?
dttblEnrolledUser = $('#tblUsers').dataTable({
...
stateLoadParams: function( settings, data ) {
if (data.order) delete data.order;
}
})
Run Code Online (Sandbox Code Playgroud)
将在每次刷新时有效地重置已保存的排序顺序。
| 归档时间: |
|
| 查看次数: |
3912 次 |
| 最近记录: |