<%
'==========================================================================
'// 페이징 처리 함수
'
'@param     cp      : 현재 페이지 번호
'@param     t_cnt   : 전체 게시물 수(전체 레코드수)
'@param     ln      : 페이지에서 보여줄 리스트 수 *) 이 값은 rs.PageSize 와 같아야함
'@param     param   : 파라미터 조합
'
'@ex        Call ShowPageNavigation(3,1000,10,"&srchfield=&srchtxt=")
'           -> default.asp?CP=3&srchkubun=&srchval=
'           -> 1000개의 레코드를 보여질 목록 10개를 기준으로 페이징바 생성
'==========================================================================
Public Function ShowPageNavigation(cp, t_cnt, ln, param)
    Dim nPREV, nCUR, nNEXT, i, szPage, nFirst, nLast, tp
    Dim pageLoc
    Dim retVal
   
    tp = getTotalPageSize(t_cnt, ln)
   
    nFirst  = "" : nLast    = ""
    nPREV   = (int((cp-1)/10)-1)*10+1
    nCUR    = (int((cp-1)/10))*10+1
    nNEXT   = (int((cp-1)/10)+1)*10+1

    '------------------------------------------
    '// 이전 10개 처리 부분
    if nPREV > 0 then
        pageLoc = "?CP=" & nPREV & param
        szPage = "<a href=""" & pageLoc & """><font color=black><이전10개</font></a> <font color=#c2c2c2>|</font>"
    else
        szPage = "<이전10개 <font color=#c2c2c2>|</font>"
    end if
   
    '------------------------------------------
    '// 중간 부분 페이징
    i = 1
    Do While i < 11 and nCUR <= tp
        if CInt(cp) = CInt(nCUR) then
            szPage = szPage & " <font color=#F96711>"&nCUR&" </font><font color=#c2c2c2>|</font>"
        else
            pageLoc = "?CP=" & nCUR & param
            szPage = szPage & " <a href=""" & pageLoc & """><font color=black>"&nCUR&"</font></a> <font color=#c2c2c2>|</font>"
        end if
        nCUR = nCUR + 1
        i = i + 1
    Loop
   
    '------------------------------------------
    '// 다음 10개 처리 부분
    if nNEXT <= tp then
        pageLoc = "?CP=" & nNEXT & param
        szPage = szPage & " <a href=""" & pageLoc & """><font color=black>다음10개></font></a>"
    else
        szPage = szPage & " 다음10개>"
    end if
    if CInt(tp) = 0 then
        retVal = ""
    else
        retVal = nFirst&" "&szPage&" "&nLast
    end if

    ShowPageNavigation = retVal
End Function

'==========================================================================
'// 전체 페이지수 얻기 - 페이징 함수(ShowPageNavigation와 연동)
'
'@param     t_cnt : 전체 게시물 수(전체 레코드수)
'@param     ln : 페이지에서 보여줄 리스트 수
'==========================================================================
Function getTotalPageSize(t_cnt, ln)
    Dim ret
    t_cnt = CDbl(t_cnt)
    ret = fix(t_cnt/ln)
    if (t_cnt mod ln) > 0 then
        ret = ret + 1
    end if
    getTotalPageSize = ret
End Function
%>

+ Recent posts