我正在寻找一种方法,使我的表按在date列上降序的日期进行预排序。我已经阅读了有关排序的数据表文档,但是在使用window.dtDefaultOptions
时没有找到可行的解决方案。看来window.dtDefaultOptions.order = [[3, "desc"]]
应该是完成此任务的方法,但对我而言不起作用。
我也尝试过window.dtDefaultOptions.columnDefs = [{orderable: true, targets: 3}]
,但这也不能解决问题。
这是我在index.blade中的代码:
$(document).ready(function () {
window.dtDefaultOptions.ajax = '{!! route(' admin.feedback.index ') !!}';
window.dtDefaultOptions.stateSave = true;
//window.dtDefaultOptions.scrollY = '50vh';
window.dtDefaultOptions.scrollCollapse = true;
window.dtDefaultOptions.order = [[3, "desc"]];
window.dtDefaultOptions.columns = [{
data: 'user.name',
name: 'user.name'
}, {
data: 'type',
name: 'type'
}, {
data: 'comment',
name: 'feedback.comment'
}, {
data: 'date',
name: 'created_at'
}, {
data: 'actions',
name: 'actions',
searchable: false,
sortable: false
}
];
window.dtDefaultOptions.buttons = [];
processAjaxTables();
});
答案 0 :(得分:0)
我找到了一种通过递减渲染使列排序的方法。
window.dtDefaultOptions = {
columnDefs: [],
"order": [3,'desc'],
};
问题是要使其正常工作,我必须删除或注释掉saveState和scrollCollapes代码行。
$(document).ready(function () {
window.dtDefaultOptions.ajax = '{!! route('admin.feedback.index') !!}';
window.dtDefaultOptions = {
columnDefs: [],
"order": [3,'desc'],
};
//window.dtDefaultOptions.stateSave = true;
//window.dtDefaultOptions.scrollY = '50vh';
//window.dtDefaultOptions.scrollCollapse = true;
window.dtDefaultOptions.columns = [{
data: 'user.name',
name: 'user.name'
}, {
data: 'type',
name: 'type'
}, {
data: 'comment',
name: 'feedback.comment'
}, {
data: 'date',
name: 'created_at'
}, {
data: 'actions',
name: 'actions', searchable: false, sortable: false
}
];
window.dtDefaultOptions.buttons = [];
processAjaxTables();
});
因此,我们有一个适用于所述问题的答案,但它破坏了代码的其他方面。在这种情况下,我可以接受这一点,因为在此特定表上,列顺序比stateSave和scrollCollapse更重要。但是,如果有人知道如何与stateSave和scrollCollapse一起实现列顺序,那么我将对学习感兴趣。