멋진 datatables 플러그인 (datatables.net)은 헤더를 클릭 할 때 Shift 키를 누른 상태로 다중 열 정렬을 수행 할 수 있습니다.jQuery DataTables shift없이 다중 정렬
교대 수정자를 사용하지 않고이 기능을 사용할 수 있습니까? 나는 완전히 손해를 본다 : (
멋진 datatables 플러그인 (datatables.net)은 헤더를 클릭 할 때 Shift 키를 누른 상태로 다중 열 정렬을 수행 할 수 있습니다.jQuery DataTables shift없이 다중 정렬
교대 수정자를 사용하지 않고이 기능을 사용할 수 있습니까? 나는 완전히 손해를 본다 : (
이상한 요청. 물론 이유가있다. 교대를 유지할 필요성을 없애면 사용자가 두 번째 열로 정렬하려고하는지 어떻게 알 수 있을까? 사용자가 두 열을 기준으로 정렬하려는 경우? 사용자가 A 열을 기준으로 정렬을 클릭 한 다음 B 열을 기준으로 정렬하려면 클릭 - B 및 B 만 정렬 할 경우
, Datatables에서이 작업을 수행 할 수있는 방법이 없습니다.이 기능이 있어야하는 경우 소스를 수정할 수 있습니다. 여기에서 예를 들어 http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.js과 같이 최소화되지 않은 버전을 다운로드 한 다음 e.shiftKey
을 검색하면 코드 대신 if (e.shiftKey)
을 입력하고 if(true)
으로 설정하거나 if를 주석 처리하십시오.
다음은 해결책입니다. (데이터 테이블 버전 1.10.12에서 테스트)
클릭 이벤트를 바인딩 해제하고 정렬 기능을 수동으로 다시 만들어야합니다.
이<table class="datatableMultiSorting">
그런 다음 JS를 추가 :
$('.datatableMultiSorting th').unbind('click.DT');
$('.datatableMultiSorting th').click(function() {
currentTable = $(this).closest(".datatableMultiSorting").dataTable();
thisIndex = $(this).index();
//console.log(thisIndex);
var sortArray = [];
$(this).siblings().andSelf().each(function(index) {
if(index==thisIndex){
if ($(this).hasClass("sorting")){
sortArray.push([index,'asc']);
}
if ($(this).hasClass("sorting_asc")){
sortArray.push([index,'desc']);
}
} else{
if ($(this).hasClass("sorting_asc")){
sortArray.push([index,'asc']);
}
if ($(this).hasClass("sorting_desc")){
sortArray.push([index,'desc']);
}
}
});
currentTable.fnSort(sortArray);
});
참고 :
먼저, 데이터 테이블에 클래스를 추가 할 경우에만 데이터 테이블 초기화 후 스크립트를 사용합니다.
저는 서버에 여러 개의 열 정렬을 보내는 방법을 알아내는 어려운 작업이었습니다. 이 질문 자체가 내 질문에 대답했습니다. – avantprime