'페이징'에 해당되는 글 2건

  1. 2009.02.17 [게시판] 페이징2
  2. 2009.02.13 [게시판] 페이징1

[게시판] 페이징2

자료 2009. 2. 17. 11:24

게시판이나 방명록 하단에 보이는 페이지 넘기기 부분

public class MyUtil {
// 현재 게시판의 페이지 인덱스 설정
    public String indexList(int current_page, int total_page, String list_url) {
        int pagenumber;     // 화면에 보여질 페이지 인덱스 수
        int startpage;      // 화면에 보여질 시작페이지 번호
        int endpage;        // 화면에 보여질 마지막페이지 번호
        int curpage;        // 이동하고자 하는 페이지 번호
        String strList="";  // 리턴될 페이지 인덱스 리스트

        pagenumber = 3;    // 한 화면의 페이지 인덱스 수 

        // 시작 페이지번호 구하기
        startpage = ((current_page - 1) / pagenumber) * pagenumber + 1;
        // 마지막 페이지번호 구하기
        endpage = (((startpage - 1) +  pagenumber) / pagenumber) * pagenumber;

        // 총 페이지 수가 계산된 마지막페이지 번호보다 작을경우
        // 총 페이지 수가 마지막페이지 번호가 됨
        if (total_page <= endpage)
        {
            endpage = total_page;
        }

        // 첫번째 페이지 인덱스 화면이 아닌경우
        if ( current_page > pagenumber) {
            curpage = startpage - 1;    // 시작페이지 번호보다 1 적은 페이지로 이동
            strList = strList + "<a href='"+list_url+"&current_page="+curpage+"'>[<<]</a>";
        }else{
            strList = strList + "[<<]";
        }
        strList = strList + " ... ";

        // 시작페이지 번호부터 마지막페이지 번호까지 화면에 표시
        curpage = startpage;

        while (curpage <= endpage){
            if (curpage == current_page) {
                strList = strList + "["+current_page+"]";
            } else {
                strList = strList +"<a href='"+list_url+"&current_page="+curpage+"'>["+curpage+"]</a>";
            }
            curpage++;
        }
        strList = strList + " ... ";
     
        // 뒤에 페이지가 더 있는경우
        if ( total_page > endpage) {
            curpage = endpage + 1; 
            strList = strList + "<a href='"+list_url+"&current_page="+curpage+"'>[>>]</a>";
        }else{
            strList = strList + "[>>]";
        }
        return strList;
    }
}

Posted by zeide
,

[게시판] 페이징1

자료 2009. 2. 13. 12:09

게시판 하단에 페이지 넘기기 부분.
주석 참고.

public class PagingHandle {
 private int p_group;//화면에 보이는 페이지의 그룹
 /**
  * @param page_url
  * @param total_page
  * @param page_size
  * @param page_num
  * @return
  */
 public String indexPageList(String page_url, String total_page, String page_size, int page_num ){
  String reIndexList="";//반환되는 페이징
  
  int totalRow = Integer.parseInt(total_page);//전체 글의 수
  int pageSize = Integer.parseInt(page_size);//한 페이지에 보여질 글의 수
  int pageNum = page_num;//페이지 번호
  
  /*시작 페이지 번호(보여지는 페이지의 번호) 구하기
   * 보고 있는 페이지가 페이지 그룹의 마지막 페이지면(pageNum==p_group) 다음 페이지를시작 페이지로 설정 */
  int startPage = ((((pageNum%p_group)==0)?pageNum-1:pageNum)/p_group)*p_group+1;
  
  /*전체 페이지 번호 구하기
   *전체 글의 수를 페이지당 보여질 글의 수로 나누면 총 페이지가 나온다. 글 수가 많으면 1페이지 추가 */
  int totalPage = (totalRow/pageSize)+(((totalRow%pageSize)==0)?0:1);
  
  /*마지막 페이지 번호 구하기
   *전체 페이지 번호에서 보여지는 페이지 번호를 제외한 나머지 페이지와 페이지그룹을 비교해서 결정 */
  int endPage = ((totalPage-startPage)<p_group)?totalPage:p_group;
  
  //1번 페이지로 가기
  reIndexList +="<a href='"+page_url+"&pageNum=1'>[처음]</a>&nbsp";
  
  //현재 페이지가 페이지 그룹보다 클 경우 이전 그룹으로 가기
  if(pageNum>p_group){
   reIndexList +="<a href='"+page_url+"&pageNum="+(startPage-1)+"'>[이전]</a>&nbsp";
  }//if
  
  //페이지 그룹 안에 있는 페이지 번호 설정하기
  while(startPage<=endPage){
   //현재 보고 있는 페이지
   if(startPage==pageNum){
    reIndexList+="<b>["+pageNum+"]</b>&nbsp";
   }else{
    reIndexList+="<a href='"+page_url+"&pageNum="+startPage+"'>["+startPage+"]</a>&nbsp";
   }//else
   startPage++;
  }//while
  
  //뒤에 페이지가 더 있으면 다음 페이지 그룹으로 가기
  if(endPage!=totalPage){
   reIndexList +="<a href='"+page_url+"&pageNum="+(endPage+1)+"'>[다음]</a>&nbsp";
  }//if
  
  //마지막 페이지로 가기
  reIndexList +="<a href='"+page_url+"&pageNum="+totalPage+"'>[끝]</a>";
  
  return reIndexList;
 }//indexPageList
 
}//class
Posted by zeide
,