jQuery 기반의 데이터 그리드 라이브러리인 DataTables의 기본 사용법과 옵션 설정, 스크롤, 열 너비/비표시 설정, JSON 데이터 바인딩 방법 정리입니다.
1. DataTables 라이브러리 로드 및 기본 테이블 초기화
CDN을 통해 jQuery 및 DataTables CSS/JS를 로드한 뒤 기본적인 HTML 테이블에 DataTables를 적용합니다.
<!-- CDN 라이브러리 로드 -->
<link rel="stylesheet" href="https://cdn.datatables.net/t/bs-3.3.6/jqc-1.12.0,dt-1.10.11/datatables.min.css"/>
<script src="https://cdn.datatables.net/t/bs-3.3.6/jqc-1.12.0,dt-1.10.11/datatables.min.js"></script>
<!-- HTML 테이블 구조 -->
<table id="foo-table" class="table table-bordered">
<thead>
<tr><th>No</th><th>지역선택</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>서울</td></tr>
<tr><td>2</td><td>경기도</td></tr>
</tbody>
</table>
<!-- 기본 초기화 JS -->
<script>
jQuery(function($){
$("#foo-table").DataTable();
});
</script>
2. 주요 기능 제어 및 스크롤·열 옵션
검색, 페이징, 정렬 등의 기본 기능을 숨기거나 스크롤바, 열 너비/숨김, 상태 저장(stateSave) 옵션을 설정할 수 있습니다.
$("#foo-table").DataTable({
// 기능 숨기기 옵션
lengthChange: false, // 표시 건수 제어 비활성화
searching: false, // 검색 기능 비활성화
ordering: false, // 정렬 기능 비활성화
info: false, // 하단 정보 표시 비활성화
paging: false, // 페이징 비활성화
// 초기 정렬 설정 (1번째 열 오름차순, 2번째 열 내림차순)
order: [[ 0, "asc" ], [ 1, "desc" ]],
// 스크롤바 및 상태 저장
scrollX: true, // 가로 스크롤
scrollY: 200, // 세로 스크롤 (px)
stateSave: true, // 페이지, 정렬 상태 유지
// 표시 건수 설정
lengthMenu: [ 10, 20, 30, 50 ],
displayLength: 20,
// 특정 열(Column) 옵션 지정
columnDefs: [
{ targets: 0, visible: false }, // 1번째 열 숨김
{ targets: 1, width: 100 } // 2번째 열 너비 설정
]
});
3. JSON 파일/Ajax 데이터 동적 바인딩
서버 측에서 전달되는 JSON 데이터를 바인딩하여 동적으로 테이블을 구성하는 방법입니다.
// Ajax를 이용한 JSON 연동 (HTML에는 만 작성)
$("#foo-table").DataTable({
ajax: {
url: "data.json",
dataSrc: ''
},
columns: [
{ data: "id" },
{ data: "name" }
]
});