Повторить мои попытки:
Так что единственное метод, о котором я мог подумать, - сделать глубокий вдох и взломать сами DataTables:
function _fnSortAttachListener ( settings, attachTo, colIdx, callback )
{
return;
Итак, я добавил, что оператор return в начало тела функции. Это предотвратит присоединение слушателя. Я оставил недоступный код ниже возврата, чтобы вызвать как можно меньшую модификацию. Проблемы с этой модификацией:
function Ka(a,b,c,d){return;var e=a.aoColumns[c];Ta(b ...
$('.dataTables_scrollHead thead th').on('click', function (e) {
if ($(e.target).hasClass("yadcf-filter-reset-button") || $(e.target).hasClass("paramchk") || $(e.target).hasClass("paramsel") || $(e.target).is("option"))
return;
var colIdxStr = $(this).attr("data-column-index");
var colIdx = parseInt(colIdxStr, 10);
viewModel.sortColumn(colIdx, e.shiftKey);
});
Вы видите здесь комбинацию фильтров или всплывающих окон yacdf («опция») или полей редактирования, отмеченных мной классом «paramsel» или флажками с пометкой «paramchk», класс будет получать событие click, и я не сортирую. Но в противном случае мне нужно программно сортировать. Следующий код даже пытается поддерживать сортировку нескольких столбцов, если нажата клавиша shift.
viewModel.sortColumn = function (colIdx, shiftPressed) {
var order = viewModel.table.order();
var direction = "";
for (var i = 0; i < order.length; i++) {
if (order[i][0] == colIdx) {
direction = order[i][1];
break;
}
}
if (direction === "")
direction = "desc";
else if (direction === "desc")
direction = "asc";
else
direction = "";
if (shiftPressed) {
order.push([colIdx, direction]);
viewModel.table.order(order).draw();
} else {
viewModel.table.order([colIdx, direction]).draw();
}
}
Еще одна необходимая деталь - это декорирование ячеек заголовка индексом столбца:
viewModel.table = $('#reportTable').DataTable({
...
headerCallback: function (thead, data, start, end, display) {
$(thead).find("th").each(function (thindex, thelement) {
$(thelement).attr("data-column-index", thindex);
});
}
});
В конце концов, все это настолько сложно, что, пожалуйста, не стесняйтесь сказать мне, можно ли его упростить или вы знаете какое-то элегантное или другое решение.
Сначала проверьте, можете ли вы выполнить поиск whois вручную с помощью этой команды whois google.com
, если есть какая-либо ошибка, вам придется сначала установить whois, используя sudo apt-get install whois