★jqgrid 페이징 분리
참고 = http://blog.naver.com/PostView.nhn?blogId=jaeik714&logNo=140187085974
참고 = http://cofs.tistory.com/31
를 참고하여 페이징 분리를 도전
*기본적으로 필요한 데이터*
1. 현재 페이지번호 currentPage
2. 한 페이지에 뿌려질 데이터의 수 rowNum
3. 총 데이터의 갯수 totalRecords
4. 한 화면에 뿌려질 페이지의 수 pageCount
5. 총 페이지의 수 totalPage
6. pageCount 가 뿌려질 화면의 수 pageList (ex) 페이지가 10개씩 뿌려질 화면의 번호
7. pageList의 총 수 totalPageList
일단 그리드 페이징에서 각 페이지에따른 값을 보내줌
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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | userDetaileViewMult(rowid, dcode); }, loadComplete : function() { $(".ui-pg-input").css({"color" : "#333","text-align" : "center"}); //추가할 페이징 영역 - paginate //총 레코드 갯수 var totalRecords = $('#list2').jqGrid('getGridParam','records'); init("list2","paginate",totalRecords,""); //init("그리드아이디","페이징아이디",총레코드수,현재페이지); //currentPage를 ""로 준 이유는 이전페이지나 마지막 페이지로 이동할때 현재페이지를 받아 계산을 해서 리로드해야하기 때문..?인듯 } }); } function init(gridId,pageId,totalRecords,currentPage){ // 변수로 그리드아이디, 총 데이터 수, 현재 페이지를 받는다 if(currentPage==""){ var currentPage = $('#'+gridId).getGridParam('page'); } // 한 페이지에 보여줄 페이지 수 (ex:1 2 3 4 5) var pageCount = 10; // 그리드 데이터 전체의 페이지 수 var totalPage = Math.ceil(totalRecords/$('#'+gridId).getGridParam('rowNum')); // 전체 페이지 수를 한화면에 보여줄 페이지로 나눈다. //var totalPageList = (totalPage/pageCount)*10; var totalPageList = Math.ceil(totalPage/pageCount); // 페이지 리스트가 몇번째 리스트인지 //var pageList=(currentPage/pageCount)*10; var pageList=Math.ceil(currentPage/pageCount); // 페이지 리스트가 1보다 작으면 1로 초기화 if(pageList<1){ pageList=1;}; // 페이지 리스트가 총 페이지 리스트보다 커지면 총 페이지 리스트로 설정 if(pageList>totalPageList){ pageList = totalPageList;} // 시작 페이지 var startPageList=((pageList-1)*pageCount)+1; // 끝 페이지 var endPageList=startPageList+pageCount-1; // 시작 페이지와 끝페이지가 1보다 작으면 1로 설정 // 끝 페이지가 마지막 페이지보다 클 경우 마지막 페이지값으로 설정 if(startPageList<1){startPageList=1;} if(endPageList>totalPage){endPageList=totalPage;} if(endPageList<1){ endPageList=1;} // 기본설정 //paginate 에 들거갈 태그 var paginateInner=""; //이전페이지가 비존재 비활성화 if(pageList<2){ paginateInner += "<i class='fa fa-angle-double-left'>"; paginateInner += "<i class='fa fa-angle-left'>"; }; //이전페이지가 존재 활성화 if(pageList>1){ paginateInner += "<a href='javascript:firstPage(\""+ gridId +"\", "+(i)+");'><i class='fa fa-angle-double-left' faPointer></a>"; paginateInner += "<a href='javascript:prePage(\""+ gridId +"\", "+totalRecords+");'><i class='fa fa-angle-left' faPointer></a>"; }; //페이지 숫자를 찍으며 태그생성 for(var i=startPageList; i<=endPageList; i++){ if(i==currentPage){ paginateInner = paginateInner +"<a href='javascript:goPage(\""+ gridId +"\", "+(i)+");' id='"+(i)+"' style='font-weight: 900;'>"+(i)+"</a> "; }else{ paginateInner = paginateInner +"<a href='javascript:goPage(\""+ gridId +"\", "+(i)+");' id='"+(i)+"'>"+(i)+"</a> "; }; }; //다음페이지 비존재 비활성화 if(pageList==totalPageList){ paginateInner += "<i class='fa fa-angle-right'>"; paginateInner += "<i class='fa fa-angle-double-right'>"; }; //다음페이지 존재 활성화 if(pageList<totalPageList){ paginateInner += "<a href='javascript:nextPage(\""+ gridId +"\", "+totalRecords+");'><i class='fa fa-angle-right' faPointer></a>"; paginateInner += "<a href='javascript:lastPage(\""+ gridId +"\", "+ totalRecords +");'><i class='fa fa-angle-double-right' faPointer></a>"; }; $("#paginate").html(""); $("#paginate").append(paginateInner); }; |
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 | //다음 페이지들 생성 function goPage(gridId,num){ $("#"+gridId).jqGrid('setGridParam', { page:num, }).trigger("reloadGrid"); } //리스트 맨 처음으로 function firstPage(gridId){ $("#"+gridId).jqGrid('setGridParam', { page:1, }).trigger("reloadGrid"); } //이전페이지로 이동 function prePage(gridId,totalRecords){ var currentPage = $("#"+gridId).getGridParam('page'); currentPage = currentPage-1; init(gridId,"paginate",totalRecords,currentPage); $("#"+gridId).jqGrid('setGridParam', { page:currentPage, }).trigger("reloadGrid"); } //다음페이지로 이동 function nextPage(gridId,totalRecords){ var currentPage = $("#"+gridId).getGridParam('page'); currentPage = currentPage+1; init(gridId,"paginate",totalRecords,currentPage); $("#"+gridId).jqGrid('setGridParam', { page:currentPage, }).trigger("reloadGrid"); } //마지막페이지로 이동 function lastPage(gridId,totalRecords){ var currentPage = $("#"+gridId).getGridParam('page'); var pageCount=10; var totalPage = Math.ceil(totalRecords/$('#'+gridId).getGridParam('rowNum')); var totalPageList = (totalPage/pageCount)*10; init(gridId,"paginate",totalRecords,currentPage); $("#"+gridId).jqGrid('setGridParam', { page:totalPageList, }).trigger("reloadGrid"); } | cs |
'개발 > jqgrid' 카테고리의 다른 글
cellEdit 사용 (0) | 2017.05.22 |
---|---|
jqgrid 기본설정,옵션 (0) | 2016.12.22 |
★jqgrid 페이징 구현(쿼리) --> count추가 2016.12.21 (0) | 2016.12.12 |
jqgrid loadComplete , gridComplete (0) | 2016.12.08 |
그리드 리로드 + 체크박스 유지 (0) | 2016.12.07 |
댓글