2016-09-27 2 views
0

나는 example과 유사한 체크 박스로 데이터 테이블을 가지고 있습니다.CSS 테이블로 데이터 테이블의 선택된 행 정렬

체크 박스는 CSS :after:before 가상 요소를 사용하여 만들어 지므로 해당 열을 포함하는 열에는 값이 없습니다.

사용자가 단추를 클릭 할 때 프로그래밍 방식으로 일부 행을 선택하지만 선택한 행이 테이블 맨 위에 나타나기를 원합니다. 이는 주로 선택된 행이 보이지 않는 페이지에있을 때 사용자가 어떤 일이 일어나는 것을 보는 것입니다. https://jsfiddle.net/b22kx27s/2/

내가 정상에 선택한 행을 가지고 사용자 정의 정렬 함수로보고 시도했지만 열이 더 값이 없기 때문에 그것을 할 방법을 알아낼 수 없습니다 : 여기

는 바이올린입니다. 첫번째 열의 columnDefsorderDataType: 'dom-checkbox' 사용

$.fn.dataTable.ext.order['dom-checkbox'] = function (settings, col) 
{ 
    return this.api().column(col, {order:'index'}).nodes().map(function (td, i) { 
    return $(td).closest('tr').hasClass('selected') ? '1' : '0'; 
    }); 
} 

주문할 수 있도록 :

+0

해당 열에서 어떤 종류의 데이터가 변경되지 않으면이 확인란을 선택하면 DataTable에서 정렬 할 수있는 방법이 확실하지 않습니다. (이 체크 박스를 완성하기 위해 : before와 : after를 영리하게 사용하십시오!) –

+0

cale_b와 동의하십시오 ... 플러그인의 내부가 사용자 정의 정렬을 수행 할 때 행 데이터를 참조 할 수있는 상태를 어딘가에 저장해야합니다. 플러그인 데이터 외부의 데이터 저장소에 저장할 수 있지만 그렇게하는 것이 더 까다 롭습니다. – charlietfl

답변

0
$.fn.dataTable.ext.order['dom-checkbox'] = function (settings, col) 
{ 
    return this.api().column(col, {order:'index'}).nodes().map(function (td, i) { 
    return $('input', td)[1].checked ? '1' : '0'; 
    }); 
} 

선택하여 주문할 수있는 첫 번째 열에 대한 columnDefsorderDataType: 'dom-checkbox' 사용 :

여기에 업데이트 된 바이올린입니다.

관련 문제