RealGrid2 가이드
페이지 처리
그리드에서 페이징 처리2

페이지네이션을 사용하여 페이지 이동.

리얼그리드의 기능과 자바스크립트를 이용하여 페이지네이션을 구현한 데모 입니다. 그리드 하단에 페이지네이션이 위치할 div를 생성하여 처리 합니다.

//페이지네이션 생성 및 이동 처리
function paging(totalData, dataPerPage, pageCount, currentPage) {
  console.log('currentPage : ' + currentPage)
 
  var totalPage = Math.ceil(totalData / dataPerPage) // 총 페이지 수
  var pageGroup = Math.ceil(currentPage / pageCount) // 페이지 그룹
 
  console.log('pageGroup : ' + pageGroup)
 
  var last = pageGroup * pageCount // 화면에 보여질 마지막 페이지 번호
  if (last > totalPage) last = totalPage
  var first = last - (pageCount - 1) < 1 ? 1 : last - (pageCount - 1) // 화면에 보여질 첫번째 페이지 번호보여질 첫번째 페이지 번호
  var next = last + 1
  var prev = first - 1
 
  console.log('last : ' + last)
  console.log('first : ' + first)
  console.log('next : ' + next)
  console.log('prev : ' + prev)
 
  var $pingingView = $('#paging')
 
  var html = ''
 
  if (prev == 0) {
    html += "<a href=# id='first' class='disabled'>|<</a> "
    html += "<a href=# id='prev' class='disabled'><</a> "
  } else {
    html += "<a href=# id='first'>|<</a> "
    html += "<a href=# id='prev'><</a> "
  }
 
  for (var i = first; i <= last; i++) {
    html += "<a href='#' style='width: 50px' id=" + i + '>' + i + '</a> '
  }
 
  if (last < totalPage) {
    html += "<a href=# id='next'>></a>"
    html += "<a href=# id='last'>>|</a>"
  } else {
    html += "<a href=# id='next' class='disabled'>></a>"
    html += "<a href=# id='last' class='disabled'>>|</a>"
  }
 
  $('#paging').html(html) // 페이지 목록 생성
 
  $('#paging a').css({ color: 'black', 'padding-left': '10px' })
 
  $('#paging a#' + currentPage).css({
    'text-decoration': 'none',
    color: 'red',
    'font-weight': 'bold',
  }) // 현재 페이지 표시
 
  $('#paging a').click(function () {
    var $item = $(this)
    var $id = $item.attr('id')
    var selectedPage = $item.text()
 
    if ($id == 'first') selectedPage = 1
    if ($id == 'next') selectedPage = next
    if ($id == 'prev') selectedPage = prev < 1 ? 1 : prev
    if ($id == 'last') selectedPage = totalPage
 
    gridView.setPage(selectedPage - 1)
    paging(totalData, dataPerPage, pageCount, selectedPage)
  })
}
 
//SelectBox를 이용한 페이지 이동
function setPageSelbox(totalData, dataPerPage) {
  var totalPage = Math.ceil(totalData / dataPerPage) // 총 페이지 수
 
  //SelectBox에 페이지를 채움
  for (var i = 1; i <= totalPage; i++) {
    var optStr = '<option value=' + i + '>' + i + '</option>'
    console.log(optStr)
    $('#selBox').append(optStr)
  }
 
  //값 변경시 페이지 이동
  $('#selBox').change(function () {
    var totalData = dataProvider.getRowCount() // 총 데이터 수
    var dataPerPage = 8 // 한 페이지에 나타낼 데이터 수
    var pageCount = 3 // 한 화면에 나타낼 페이지 수
    var selectedPage = $(this).val()
 
    gridView.setPage(selectedPage - 1)
    paging(totalData, dataPerPage, pageCount, selectedPage)
  })
}