본문 바로가기

ASP.NET

PageNavi_ 게시판 페이징(출력 페이지수 변경가능)

페이징 출력코드 +수정

이전의 페이징코드를 살짝 수정하여 출력페이지 수 변경가능하도록 클래스(클래스명: PageNavi) 수정해보기

(이전 게시판페이징 포스팅으로 바로가기: http://lbnl88.tistory.com/57)


path= 링크경로정보   

nowPage= 현재페이지

totRecCnt= 총페이지수
pageSize= 출력할 페이지수
totPageSize= 한페이지에 출력되는 게시물의 수

 

Ex) 출력화면


클래스를 호출할때 pageSize를 추가하여 출력페이지 수를 유동적으로 바꿔보았다.

 public static string PageNavi(string path, int nowPage, int totRecCnt, int pageSize, int totPageSize)
{
    int totPage = 0;
    totPage = totRecCnt % totPageSize;

if (totPage == 0)
{
     totPage = totRecCnt / totPageSize;
}
else
{
     totPage = (totRecCnt / totPageSize) + 1;
}

 

int startPage = ((nowPage - 1) / pageSize) * pageSize + 1;
int endPage = 0;

 

string _pageReturn = "";

 

if (path.IndexOf('?') > -1)
{
     path += "&page=";
}
else
{
     path += "?page=";
}

 

if (totPage > startPage + 9)
{
     endPage = startPage + 9;
}
else
{
     endPage = totPage;
}

 

//첫페이지로이동
if (startPage > 10)
{
    _pageReturn += "<a href=\"" + path + "1\" class=\"img\"><img src=\"/first.gif\" alt=\"처음\" /></a>";
    _pageReturn += "<a href=\"" + path + (startPage - 10).ToString() + "\" class=\"img\"><img src=\"/prev.gif\" alt=\"이전\" /></a>"; ;
}

 

for (int i = startPage; i <= endPage; i++)
{
     if (nowPage == i)
     {
          _pageReturn += "<a href=\"" + path + i.ToString() + "\" class=\"now\">" + i.ToString() + "</a>";
      }
     else
     {
          _pageReturn += "<a href=\"" + path + i.ToString() + "\">" + i.ToString() + "</a>";
      }
}

if (totPage > 10)
{
     if (endPage < totPage)
     {
     _pageReturn += "<a href=\"" + path + (startPage + 10).ToString() + "\" class=\"img\">

     <img src=\"/next.gif\" alt=\"다음\" /></a>";
     _pageReturn += "<a href=\"" + path + totPage.ToString() + "\" class=\"img\">

     <img src=\"/last.gif\" alt=\"마지막\" /></a>";
      }
}

return _pageReturn;

}