<%
'==========================================================================
'// 페이징 처리 함수
'
'@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
%>
'==========================================================================
'// 페이징 처리 함수
'
'@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
%>
'asp' 카테고리의 다른 글
asp로 이미지 사이즈(크기) 얻는 함수 (1) | 2007.05.02 |
---|---|
글 읽을때 조회수 증가 체크(쿠키 이용) (1) | 2007.05.02 |
Request 를 폼의 히든(hidden) 값으로 자동 생성해주기 (1) | 2007.05.02 |
진수 변환 시키기 (0) | 2007.05.02 |
ASP로 다국어 지원 사이트 만들기 (0) | 2007.05.02 |