tabulator를 쓰기 위한 초기 설정
※ jquery가 tabulator보다 먼저 불러와져야함
// jquery
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
// tabulator script
<script type="text/javascript" src="https://unpkg.com/tabulator-tables@5.4.4/dist/js/tabulator.min.js"></script>
// tabulator css
<link href="https://unpkg.com/tabulator-tables@5.4.4/dist/css/tabulator_semanticui.min.css" rel="stylesheet">
https://tabulator.info/examples/5.4#theming
Tabulator - Examples
Interactive examples of all the features available in Tabulator tables and data grids
tabulator.info
tabulator 테이블 테마를 고를수 있는 페이지
link를 건 css에서 /dist/css/tabulator_semanticui.min.css 이부분만 나와있는 테마에서 마음에 드는걸 골라서 바꿔주면
적용됨
HTML 기본 선언 문장
<div id="test"><div> //div의 id를 이용해 div내부에 table을 비동기로 추가해줌
script 기본 선언 문장
<script type="text/javascript">
$(function(){ // $(document).ready(function(){ });와 동일한 의미 웹이 시작할때 같이 시작됨
var url = "test"; // controller에 요청을 하는 url
table = new Tabulator("#test", { // id:test에 Tabulator 생성
layout : "fitColumns", // 테이블 크기에 컬럼을 딱 맞추는 기능
columns : [{ // controller에서 값을 받아와서 화면에 띄우기 위한 설정
title : "테스트" // 테이블 header 네임
field : "test" // controller에서 받아온 Map 데이터의 string 이름
sorter : "string" // controller에서 받아 와서 적용할 데이터 타입
}]
}); // Tabulator 생성 설정
table.on("tableBuilt", function(){ // table이 무슨 작업을 할때 실행한다는 뜻
table.setData(url); // 설정한 url에 ajax요청을 보내 값을 가져온후 테이블에 값 적용
}); //
});
Tabulator 기본 맥락에 맞춰 기능 정리
// 기본 맥락 정리
var table = new Tabulator("[테이블 만들 위치의 태그 id]", {
/* ------------- 주로 쓰는 테이블 전체적인 기능 및 CSS ------------- */
layout : "fitColumns",
addRowPos : false, // 새행 추가시 맨 아래 추가
autoResize : false, // 테이블 자동 크기 조정 방지
selectale : 1, // select(선택) 할수 있는 테이블 개수 지정
pagination : "local", // 페이징 처리
paginationSize : 10, // 테이블 1페이지당 들어가는 컬럼 개수
paginationCounter : "rows", // 테이블 데이터 컬럼 카운터
movableColumns : true,
placeholder : "데이터가 존재하지 않습니다.", // 데이터가 비어있을 경우 뜨는 글
scrollToRowPosition : "center",
height : "500px",
/* ------------- // ------------- */
/* ------------- columns 기본 설정 및 CSS ------------- */
columns : [ {
title : "[테이블헤더명]",
field : "[표시할 데이터명]",
sorter : "string", // 가져온 데이터 자료형 설정
headerSort : false, // 데이터 정렬 아이콘 및 기능 제거
hozAlign : "center", // 가져온 데이터 위치 가운데 정렬 bottom, top도 존재
headerHozAlign : "center" // 헤더 위치 가운데 정렬 "
// columns : [{ }] 컬럼 내부에 컬럼 기입가능
}]
])
/* ------------- tabulator테이블에 데이터 호출 ------------- */
table.on("tableBuilt", function(){
table.setData([컨트롤러에 호출할 url (method 기본값 GET) ]);
)}
번외. Tabulator 기능은 아니지만 비동기로 AJAX를 통해 데이터를 추가, 삭제 수정을 할 경우
이렇게 하는 이유는 ajax 밖에 table.setData()를 통해 다시 테이블에 데이터를 새로고침하면 추가, 수정, 삭제 하기전
데이터가 표시되기 때문에 무조건 컨트롤러 -> 서비스 -> DB SQL을 통해 처리 한 후 컨트롤러에서 값을 리턴 후
success function을 처리하고 complete가 실행되서 데이터가 변동된 값이 정상적으로 출력이 가능해집니다.
$.ajax({
type : 'POST',
url : url,
data : data,
success : function(result){
// 통신 성공시 코드
},
// complete는 통신 후 success가 실행 후 실행되서 비동기식 고질적인 문제를 예방도 하면서
// 추가, 수정, 삭제 시 바로바로 바뀌는 모습을 볼 수 있다.
complete : function(xhr, status) {
table.setData(); // 테이블 다시 불러오기
}
)}
아래 공식 Tabulator 사이트에서 더 많은 기능을 간편하게 찾을 수 있습니다~.
https://tabulator.info/docs/5.4/options#table
Tabulator - Setup Options
A detailed explanation of all table setup options
tabulator.info
공식사이트의 전체 기능 모듈
'개발 관련 일지 > 학습 일지' 카테고리의 다른 글
영어 공부 (Spring공식 문서 단어 의미 해석) (0) | 2023.05.09 |
---|---|
Spring 웹 개발 기본 구조 연결 설정법(Eclipse) (0) | 2023.05.08 |
2/23 데이터베이스 컬럼값 공부 (0) | 2023.02.23 |
정보처리 산업 기사 공부 (0) | 2023.02.13 |
2/10 학습일지 (0) | 2023.02.10 |
댓글