태그

#JQGRID

jqGrid 기본 사용법 정리

2021년 11월 3일 17:43

27-thumbnail-image

jqGrid란 ?

  • jqGrid는 jQuery라이브러리를 이용한 Grid Plugin

  • jqGrid는 웹에서 테이블 형식의 데이터를 표시하고 조작을 위한 Ajax기반 자바스크립트 컨트롤러.

  • jqGrid는 기본적으로 jQuery-UI를 이용하기 때문에 원하는 테마를 만들어서 사용가능

<출처 : https://backback.tistory.com/98 >


<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>test</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>

    <!-- 다운로드 받아야됨 -->
    <!-- http://1004lucifer.blogspot.com/2019/04/jqgrid.html -->
    <link rel="stylesheet" type="text/css" href="jqGrid-master/themes/redmond/jquery-ui.css" />
    <link rel="stylesheet" type="text/css" href="jqGrid-master/css/ui.jqgrid.css" />
    <link rel="stylesheet" type="text/css" href="jqGrid-master/css/addons/ui.multiselect.css" />
    
    <script type="text/javascript" src="jqGrid-master/jquery.js"></script>  
    <script type="text/javascript" src="jqGrid-master/js/i18n/grid.locale-kr.js"></script>
    <script type="text/javascript" src="jqGrid-master/js/jquery.jqGrid.min.js"></script>

</head>
<body>
    <div class="row">
        <div>
            <table id="jqGrid"></table>
            <div id="jqGridPager"></div>
        </div>
    </div>
</body>
<script>
    $(function() { // page가 로드 되는 것을 기다림
        var myGrid = $('#jqGrid'); // 미리 세팅해도 되고 바로 사용해도 됨
        var myGridPager = $('#jqGridPager');

        // 이것도 미리 세팅한건데 name이랑 model 데이터 length가 다르면 에러남
        var cName = ['seq', '번호', '제목', '작성자', '작성일'];
        var cModel = [
            {name : 'boardSeq', index : 'BOARD_SEQ', align : 'center', hidden : true},
            {name : 'num', index : 'NUM', align : 'center', width : '25%'},
            {name : 'title', index : 'TITLE', align : 'center', width : '25%'},
            {name : 'reg_id', index : 'REG_ID', align : 'center', width : '25%'},
            {name : 'reg_dt', index : 'REG_DT', align : 'center', width : '25%'},
        ];
        
        // 안적어도 알겠지만 세팅 안하고 바로 작성해도 됨
        myGrid.jqGrid({
            url : "/board/selectBoardList.do", // 데이터를 받아올 url (type = string)
            mtype : "POST", // 요청 메소드 정의 : POST, GET 등등 (type = string)
            datatype : "json", // 데이터를 채우는 데이터 형식 : xml, json, local 등등 (type = string)
            postData : {
                // POST 요청 시 넘겨줄 데이터 지정 (type = array)
            },
            colNames : cName, // header에 보여질 텍스트 (type = array)
            conModeal : cModel, // body에 보여질 텍스트 (type = array)
            pager : myGridPager, // 페이징 요소 지정 (type = mixed)
            rowNum : 10, // 한 페이지에 뵤여질 데이터 갯수 (type = integer)
            rowList : [10, 20, 30], // 표시되는 행의 수 변경 옵션 (type = array[])
            autowidth : true, //그리드의 상위 요소의 width로 자동 계산 (type = boolean)
	        shrinkToFit : true, // 그리드의 width를 고려하여 컬럼의 width를 어떻게 재계산할지 정의한다. (type = boolean, integer)
	        viewrecords : true, // 그리드 갯수 중에서 시작/끝 레코드 번호를 표시한다 (type = boolean)
            onSelectRow : function({
                // 행 선택시에 이루어지는 코드 (type = mixed)
            }), 
			sortname : 'num', // 데이터가 처음 로드될 때 정렬되는 열 이름
			sortorder : 'desc', // 데이터 로드시 정렬 순서 (type = string(asc, desc))
            emptyrecords : "데이터가 없습니다.", // 데이터가 없을 시 페이저 오른쪽에 보여질 문자열 : viewrecords 옵션 true일 때 사용 가능 (type = string)
            height : auto, // 그리드의 높이 설정 (type = mixed(integer(픽셀 단위), 퍼센트, auto))
            pgbuttons : true, // Pager에서 버튼의 활성화 여부 결정 (type = boolean)
            pginput : false, // 가능한 요청페이지의 번호를 입력하는 input box의 사용여부 (type = boolean)
            sortable: true, // 	그리드 열을 마우스로 드래그앤드롭으로 이동이 가능하다 (type = boolean)
        });

    });
</script>
</html>

말로 설명하는 것 보다 코드를 직접 보는게 나을 것 같아서 코드 뭉텅이 채로 올린다...

내가 참고한 사이트는 아래 사이트 조금 더 자세하게 알고 싶거나 더 많은 기능들을 찾을 때 유용한것같다

http://1004lucifer.blogspot.com/2019/04/jqgrid_65.html