Front/jsp
jqGrid 사용법
d-e-v-j
2024. 12. 4. 22:13
반응형
jqGrid는 데이터 테이블을 쉽게 구현할 수 있도록 도와주는 jQuery 플러그인이다. jqGrid에 대해서 알아보자
1. 선언
$(function () {
$("#grid").jqGrid({
url: '/data/getData', // 데이터를 가져올 URL
datatype: 'json', // 데이터 타입 (json, xml, local 등)
mtype: 'GET', // 요청 방식 (GET, POST)
colNames: ['ID', 'Name', 'Age', 'City'], // 컬럼 이름
colModel: [ // 컬럼 모델 정의
{ name: 'id', index: 'id', width: 50, align: 'center', sortable: true },
{ name: 'name', index: 'name', width: 150, align: 'left', sortable: true },
{ name: 'age', index: 'age', width: 50, align: 'center', sortable: true },
{ name: 'city', index: 'city', width: 100, align: 'left', sortable: true }
],
pager: '#pager', // 페이징을 위한 요소 ID
rowNum: 10, // 한 페이지에 표시할 행 수
rowList: [10, 20, 30], // 선택 가능한 페이지 크기
sortname: 'id', // 초기 정렬 컬럼
sortorder: 'asc', // 초기 정렬 방식
height: 'auto', // 그리드 높이
autowidth: true, // 자동 너비 조정
viewrecords: true, // 총 레코드 수 표시 여부
caption: 'Sample jqGrid', // 그리드 제목
loadComplete: function () {
console.log('Data loaded!');
}
});
});
2. 주요 옵션
데이터
- url: 데이터를 가져올 서버 URL
- datatype: 데이터를 로드할 형식(json, xml, local 등)
- mtype: 서버 요청 방식(GET , POST)
- postData: 서버로 전송할 추가 데이터를 객체 형태로 지정
컬럼 관련 옵션
- colNames: 그리드 헤더에 표시될 컬럼 이름 배열
- colModel: 컬럼의 속성을 정의하는 객체 배열
- name: 데이터 속성이름
- index:서버 정렬용 컬럼 이름
- width: 컬럼 너비
- align: 텍스트 정렬 방식(left, center, right)
- sortable: 정렬 가능 여부(true, false)
페이징 관련 옵션
- pager: 페이징 버튼을 표시할 요소의 id
- rowNum: 한페이지에 표시할 행 수
- rowList: 선택 가능한 페이지 크기 배열
정렬 관련 옵션
- sortname: 초기정렬 컬럼
- sortorder: 초기 정렬 방식(asc, desc)
외형 관련 옵션
- height: 그리드 높이(auto 로 설정하면 컨텐츠 크기에 맞게 조정)
- autowidth: 그리드 너비를 컨테이너 크기에 맞게 자동 조정(true,false)
- caption: 그리드 제목
이벤트 관련 옵션
- loadComplete: 데이터 로드 후 실행되는 콜백 함수
- onSelectRow: 행 선택 시 호출되는 콜백 함수
- gridComplete: 그리드 렌더링 완료 후 실행되는 콜백 함수
3. 추가 기능
로컬 데이터 로드
var myData = [
{ id: 1, name: 'Alice', age: 25, city: 'New York' },
{ id: 2, name: 'Bob', age: 30, city: 'Los Angeles' },
{ id: 3, name: 'Charlie', age: 28, city: 'Chicago' }
];
$("#grid").jqGrid({
datatype: 'local',
data: myData,
colNames: ['ID', 'Name', 'Age', 'City'],
colModel: [
{ name: 'id', width: 50 },
{ name: 'name', width: 150 },
{ name: 'age', width: 50 },
{ name: 'city', width: 100 }
],
pager: '#pager',
rowNum: 10,
autowidth: true
});
AJAX 로 동적 데이터 로드
$("#grid").jqGrid('setGridParam', {
url: '/data/getNewData',
datatype: 'json'
}).trigger('reloadGrid');
728x90
반응형
LIST