메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Jquery datatable

데브카페

Jquery DataTables

  • dataTables은 데이터를 테이블로 쉽게 표현하고 다양한 기능을 제공하는 라이브러리,
  • https://datatables.net/ 참조

DataTables 사용 방법

사용 예제

  • 간단한 테이블을 만드는 예제

1) html 코드

- 테이블 헤드정보(thead) 와 바디(tbody) 기술
  
<table id="exampleTable" class="table table-bordered">
  <thead>
    <tr>
      <th>Seq</th>
      <th>Name</th>
      <th>Age</th>
      <th>Date</th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="data : ${serverData}">
      <td th:text="${data.seq}></td>
      <td th:text="${data.name}></td>
      <td th:text="${data.age}></td>
      <td th:text="${data.date}></td>
    </tr>
  </tbody>
</table>

2) js 코드

  - 간단한 코드 1줄 임.
  
$("#exampleTable").DataTable({ });
  • .DataTable() 명령어로 기본적인 옵션을 가진 테이블 생성.
  • 다양한 option을 통해 테이블의 기능을 활성, 비활성 또는 커스터마이징 할 수 있음
    • 예를 들어 paging을 비활성화 하고 싶다면 (paging은 디폴트 값은 true)
  
$("#exampleTable").DataTable({
  paging: false
});

datatable 츨력건수 기본값 세팅

jQuery DataTable 기본으로 표시되는 항목(행) 수 변경

  • pageLength 옵션을 사용하여 변경
  • 테이블이 처음 로드될 때 몇 개의 행을 보여줄지 설정

기본 갯수 변경 예시

$(document).ready(function() {
    $('#example').DataTable({
        "pageLength": 10 // 기본 표시 갯수를 10으로 설정
    });
});
  • pageLength: 한 페이지에 표시할 기본 항목 수를 지정
    • 기본값은 10이지만, 원하는 숫자로 변경 가능 25, 50 등을 설정.

더 많은 옵션과 함께 설정하는 예시

$(document).ready(function() {
    $('#example').DataTable({
        "pageLength": 25,  // 기본 표시 갯수를 25로 설정
        "lengthMenu": [ [10, 25, 50, 100], [10, 25, 50, 100] ] // 선택할 수 있는 항목 갯수 메뉴
    });
});
  • lengthMenu: 사용자가 페이지당 표시할 행 수를 선택할 수 있는 드롭다운 메뉴를 제공.
    • 첫 번째 배열은 설정할 수 있는 숫자
    • 두 번째 배열은 해당 숫자의 레이블

실시간으로 기본 갯수 변경

  • 만약 테이블이 이미 초기화된 후에 기본 표시 항목 수를 변경
var table = $('#example').DataTable();
table.page.len(50).draw(); // 표시할 기본 항목 수를 50으로 변경

datatable 속성 값에 따라 색상 변경

jQuery DataTable에서 특정 셀 값이 50 이상일 때 배경색 변경

  • jQuery DataTable에서 특정 셀 값이 50 이상일 때 해당 셀의 배경색을 빨간색으로 변경하려면, createdRow 콜백 함수와 CSS 스타일을 사용하여 셀을 수정할 수 있음.

DataTable 초기화 시 셀 스타일 변경 예시

  • 각 셀을 검사하여 값이 50 이상인 경우 해당 셀의 배경색을 빨간색으로 설정
$(document).ready(function() {
    $('#example').DataTable({
        "createdRow": function(row, data, dataIndex) {
            // data[n]는 n번째 열의 데이터를 나타냄 (0부터 시작)
            $('td', row).each(function(index) {
                var cellValue = parseFloat($(this).text());
                if (cellValue >= 50) {
                    $(this).css('background-color', 'red');
                }
            });
        }
    });
});
  • createdRow: DataTable이 각 행을 생성할 때 호출되는 콜백 함수.
    • row는 생성된 HTML 행 요소
    • data는 해당 행의 데이터
    • dataIndex는 행의 인덱스
  • $('td', row).each(...): 각 행의 셀을 순회하면서 td 요소를 검사하고, 그 값이 50 이상이면 해당 셀의 배경색을 빨간색으로 설정.
  • parseFloat: 텍스트 값을 숫자로 변환하여 숫자 비교를 가능.

특정 열에 대해서만 스타일 적용

  • 만약 특정 열(예: 3번째 열)에 대해서만 배경색을 변경하고 싶다면
$(document).ready(function() {
    $('#example').DataTable({
        "createdRow": function(row, data, dataIndex) {
            var cellValue = parseFloat(data[2]); // 세 번째 열 값 (0부터 시작하므로 인덱스 2)
            if (cellValue >= 50) {
                $('td:eq(2)', row).css('background-color', 'red'); // 세 번째 열의 배경색 변경
            }
        }
    });
});
  • data[2]: 세 번째 열의 값을 가져와 비교
  • $('td:eq(2)', row): 해당 행의 세 번째 열을 선택하여 배경색을 변경
  • 특정 열의 값만을 검사하고, 조건에 맞을 때만 스타일을 적용함.

참조

테마 변경

https://datatables.net/beta/1.9/examples/basic_init/themes.html

Comments