У меня есть таблица, и она имеет 8 столбцов. Предположим, что их заголовки v 'A', 'B' ..... 'H'.
Я хочу применить сортировку по нескольким столбцам, например:
Вид по умолчанию: Case1: Если пользователь нажимает на «A» затем сортирует столбец как «A» (des c) -> «B» (как c) -> «E» (как c) -> .... -> 'H '(as c)
И если пользователь снова нажимает на' A ', тогда ничего не должно происходить.
Случай 2: Если пользователь нажимает на' E ', сортировка столбца происходит как' E '(как c) ->' A '(des c) ->' B '(как c) ->' F '(как c) -> .... ->' H '(as c)
И если пользователь снова нажимает на' E ', тогда ничего не должно происходить.
Случай 3: Если пользователь нажимает на' F ', сортировка столбца происходит как' F '(как c) ->' A '(des c) ->' B '(как c) ->' E '(как c) -> .... ->' H '(as c)
И если пользователь снова нажмет' F ', то ничего не произойдет.
пожалуйста, посмотрите на код, что я сделал
$(document).ready(function() {
window.history.pushState("object or string", "EPAP|AuctionList", contextPath+"/auctions/auctionlist");
languageList.sEmptyTable = '<spring:message code="auctionlist.emptytable"/>';
auctionTable = $('#datatable').DataTable({
language: languageList,
order: [[0, 'desc']],
columnDefs: [
{targets: 0, orderSequence: ['desc']},
{targets: 1, orderSequence: ['asc']},
{targets: 4, orderSequence: ['asc']},
{targets: 5, orderSequence: ['asc']},
{targets: 6, orderSequence: ['asc']},
{targets: 7, orderSequence: ['asc']},
{type: "datetime-moment",targets: 5}
],
initComplete: function () {
$('#datatable th').on('click', function (event) {
var auctionTable = $('#datatable').DataTable();
var th = $(this).closest('th');
var colIndex = auctionTable.column( th ).index();
console.log(colIndex);
if (colIndex === 0) {
console.log('order col 0 ')
auctionTable.order([[0, 'desc'], [1, 'asc'], [4, 'asc'], [5, 'asc'],[6, 'asc'],[7, 'asc']]).draw();
}else if (colIndex === 4) {
console.log('order col 4 ')
auctionTable.order([[4, 'asc'],[0, 'desc'], [1, 'asc'], [5, 'asc'],[6, 'asc'],[7, 'asc']]).draw();
}else if (colIndex === 5) {
console.log('order col 5 ')
auctionTable.order([[5, 'asc'],[0, 'desc'], [1, 'asc'],[4, 'asc'] ,[6, 'asc'],[7, 'asc']]).draw();
}else if (colIndex === 6) {
console.log('order col6 ')
auctionTable.order([[6, 'asc'],[0, 'desc'], [1, 'asc'], [5, 'asc'],[4, 'asc'],[7, 'asc']]).draw();
}else if (colIndex ===7) {
console.log('order col 7')
auctionTable.order([[7, 'asc'],[0, 'desc'], [1, 'asc'], [5, 'asc'],[4, 'asc'],[6, 'asc']]).draw();
}
});
},
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 2,3,8 ] }
] ,
"ajax": {
"url": (contextPath + "/auctions/dailyAuctionViewList"),
"cache": false,
"asyc":false,
"dataSrc": ""
},
Вывод:
Что я хочу ?:
- Время начала должно быть в порядке "как c", но мы Не удается применить сортировку с использованием времени начала.
- Вид по умолчанию: я указываю использование индекса столбца вместо имени столбца [[0, 'des c'], [1, 'как c '], [4,' как c '], [5,' как c '], [6,' как c '], [7,' как c ']]
Первый столбец индекса 0 сортирует, затем 1 индекс и т. Д.
Если пользователь нажимает на 4-й индекс, то [[4, 'as c'], [0, 'des c'], [1, 'as c'], [5, 'as c '], [6,' as c '], [7,' as c ']] 5-й индекс, [[5,' as c '], [0 , 'des c'], [1, 'как c'], [4, 'как c'], [6, 'как c'], [7, 'как c ']], то же самое для 6-го и 7-го индекса
Но столбцы в выходном изображении сортируются неправильно.
Примечание: Краткое описание в https://s.docworkspace.com/docs/3Hj58r9qB Пожалуйста, помогите мне, так как это мой первый день на таблицах данных.
Заранее спасибо