jqGrid의 페이징 기능 사용시, jqGrid의 기본 페이징 파라미터명과 서버의 페이징 파라미터 명이 다를 경우, 서버쪽 페이징 파라미터명을 jqGrid가 맞춰줄 수 있도록 하는 설정

By | 8월 8, 2014

 
var P_PAGE = 'pageNo'; //페이지번호 파라미터명
var P_TOTALCNT = 'totRows'; //전체 조회 건수 파라미터명
var P_ROWSPERPAGE = 'fetchRows'; //rowsPerPage 파라미터명
var P_TOTALPAGE = 'totalPage';
 
 
//jqGrid 기본 설정
$.extend($.jgrid.defaults, {
 
prmNames: {
page: P_PAGE,
rows: P_ROWSPERPAGE,
totalrows: P_TOTALCNT
},
 
jsonReader: {
root: 'data',  //응답객체 이름
page: P_PAGE,
total: P_TOTALPAGE,
records: P_TOTALCNT,
repeatItems: false, //JSON을 받을 때 각 row가 칼럼의 배열이 아닌 칼럼의 map 형태로 받겠다.
userData: 'userData'
}
 
});
 
 
//addJSONData() 함수 사용시 그리드에 데이터 바인딩 하기 (페이징 정보 포함)
var $grd = $('#grid1'), grd = $grd[0], gp = grd.p, ci = retData.ci; //여기서 ci는 우리 플젝에서 사용했던 java 페이징 객체이다.
$grd.jqGrid('clearGridData'); //그리드 데이터 삭제
var gridData = retData['datas']; //여기서 retData는 responseText 이고, datas는 그 중에서 순수하게 데이터만 담은 객체 (map의 array) 이다.
var postData = $grd.jqGrid('getGridParam', 'postData');
var rowsPerPage = $grd.jqGrid('getGridParam', 'rowNum');
var pageNo = postData[P_PAGE];
var totalCount = ci[P_TOTALCNT];
var totalPage = Math.ceil(totalCount / rowsPerPage);
gridData[P_PAGE] = pageNo;
gridData[P_TOTALCNT] = totalCount;
gridData[P_TOTALPAGE] = totalPage;
grd.addJSONData(gridData); //그리드에 데이터 바인딩
 
 
 
//addRowData() 함수 사용시 그리드에 데이터 바인딩 하기 (페이징 정보 포함)
var $grd = $grid1, grd = $grd[0], gp = grd.p, ci = retData.ci;
var data = retData['datas'];
var postData = $grd.jqGrid('getGridParam', 'postData');
var dataIds = $grd.jqGrid('getDataIDs');
var newDataCnt = dataId.length + data.length; //기존에 뿌려져 있는 데이터에 append 하는 업무요건이다.
var rowsPerPage = $grd.jqGrid('getGridParam', 'rowNum');
var pageNo = postData[P_PAGE];
var totalCount = ci[P_TOTALCNT];
var totalPage = Math.ceil(totalCount / rowsPerPage);
var lastRowId = dataIds[dataIds.length - 1];
var idPrefix = gp.idPrefix;
var newRowId, newRowNum;
for(var i=0; i<data.length; i++){
newRowNum = ++lastRowNum;
newRowId = idPrefix +String(newRowNum);
$grd.jqGrid('addRowData', newRowId, data[i], 'last');
}
gp.page = intVal(pageNo); //intVal()은 parseInt()를 랩핑한 함수이다.
gp.lastpage = intVal(totalPage);
gp.records = intVal(totalCount);
grd.updatepager(true, false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments