그리드를 사용하면 빠질 수 없는 페이징
맨날하면서 맨날 까먹기때문에 정리 해놓는다.
html 영역
1 2 | <table id="jqGrid"></table> <div id="pager"></div> | cs |
javascript 영역
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | $("#jqGrid").jqGrid({ url: '/services/data/dataList', mtype: "GET", styleUI : 'Bootstrap', datatype: "json", jsonReader: { root : "rows", // list 이름 page : "page", records: "records", total : "total" }, rowNum:10, rowList:[10,20,30], rownumbers: true, colModel: jqGridForm.colModel, viewrecords: true, height: 500, width: 1000 pager: "#pager", pgbuttons: true, pginput : true, shrinkToFit: true, sortable: false, loadComplete : function(data){ },onPaging: function (pgButton) { var gridPage = $("#jqGrid").getGridParam("page"); var totalPage = $("#jqGrid").getGridParam("total"); if(pgButton == "next"){ // 다음 페이지 if(gridPage < totalPage){ gridPage += 1; }else{ gridPage = page; } } else if (pgButton == "prev") { // 이전 페이지 if(gridPage > 1){ gridPage -= 1; }else{ gridPage = page; } } else if (pgButton == "first") { // 첫 페이지 gridPage = 1; } else if (pgButton == "last") { // 마지막 페이지 gridPage = totalPage; } else if (pgButton == "user") { // 사용자 입력 페이징 처리 var nowPage = Number($("#pager .ui-pg-input").val()); // 입력한 값이 총 페이지수보다 크다면 수행 if (totalPage >= nowPage && nowPage > 0) { gridPage = nowPage; }else{ $("#pager .ui-pg-input").val(page); gridPage = page; } } else if(pgButton == "records"){ gridPage = 1; } $("#jqGrid").setGridParam("page", gridPage); $("#jqGrid").setGridParam({ postData : jqGridForm.setParam() }); } }); | cs |
jqGrid 페이징 아주 귀찮다.
onPaging 이벤트에서 따로 설정해주어야한다.
(pager 속성 꼭 지정해야함)
특히나 사용자가 input에 값을 넣을 때 주의.
input값을 직접 가져와야한다.
jqGrid에서 담고 있는 값 쓰지 말자.
(만약 입력받고 싶지 않다면 pginput:false로 주면 된다)
'※ > 공부' 카테고리의 다른 글
화면에서 엑셀(xlsx) export하기 (0) | 2019.03.21 |
---|---|
스프링 시큐리티(Spring Security) 접근 권한 체크 (0) | 2019.03.13 |
타임리프(thymeleaf) 속성 정리 (0) | 2019.03.12 |
타임리프(thymeleaf) javascript 변수 사용 (0) | 2019.03.12 |
Bootsrap DatePicker 기본 셋팅 (0) | 2019.03.11 |