이 페이징에서는 Rs.Open Sql,Conn,0,1인 0 커서를 사용합니다. 하지만 그다지 빠른 느낌은 아니다, 10
10,000개의 데이터에 대한 페이징 시간은 300밀리초가 넘습니다.
<%
수업 페이지
비공개 통화 페이지
비공개 페이지N
비공개 UrlStr
비공개 임시 온도
비공개 ErrInfo
개인 오류가 발생했습니다.
비공개 총기록
비공개 총 페이지
공개 호출기
개인 TempA(11)
개인 TempB(8)
'------------------------------------------------ - ---------
비공개 하위 클래스_Initialize()
CurrPage=1'//기본적으로 현재 페이지가 첫 번째 페이지로 표시됩니다.
PageN=10'//기본적으로 각 페이지에는 10개의 데이터가 표시됩니다.
UrlStr="#"
온도스트레=""
ErrInfo="오류 정보:"
IsErr=거짓
서브 끝
비공개 하위 클래스_Terminate()
IsObject(PageRs)이면
페이지Rs.닫기
PageRs=아무것도 설정하지 않음
종료 조건
TempA 지우기
TempB 지우기
서브 끝
'------------------------------------------------ - ---------
'//현재 페이지 번호를 가져옵니다.
공용 속성 Let CurrentPage(Val)
CurrPage=발
끝 속성
공용 속성 현재 페이지 가져오기()
현재페이지=현재페이지
끝 속성
'//각 페이지에 표시되는 항목 수를 가져옵니다.
공공 재산 Let PageNum(Val)
페이지N=발
끝 속성
공용 속성 페이지 번호 가져오기()
페이지 번호=페이지 N
끝 속성
'//URL 가져오기
공공 자산 Let URL(Val)
UrlStr=발
끝 속성
공용 속성 Get Url()
Url=UrlStr
끝 속성
'//템플릿 가져오기
공공재산 임대온도(Val)
온도Str=Val
끝 속성
공용 속성 Get Temp()
온도=온도Str
끝 속성
'------------------------------------------------ - ----------
공용 하위 실행자(Sql,ConnObj)
오류 발생 시 다음 재개
PageRs=Server.CreateObject("ADODB.RecordSet")를 설정합니다.
PageRs.CursorLocation = 3 '클라이언트측 커서를 사용하면 효율성이 향상될 수 있습니다.
PageRs.PageSize = PageN '페이징 레코드 세트의 각 페이지에 표시되는 레코드 수를 정의합니다.
PageRs.Open SQL,ConnObj,0,1
Err.Number<>0이면
Err.Clear
페이지Rs.닫기
PageRs=아무것도 설정하지 않음
ErrInfo=ErrInfo&"레코드 세트를 생성하거나 여는 동안 오류가 발생했습니다..."
IsErr=참
응답.ErrInfo 쓰기
응답.종료
종료 조건
TotalRecord=PageRs.RecordCount'//0이면 어떻게 되나요?
TotalRecord>=1인 경우
'------------------------------------------------ - --------------------------시작
'//총 페이지 수 Ps를 계산합니다. PageRs.PageCount를 사용하면 어떨까요?
'TotalRecord Mod PageN=0이면
'TotalPage=PageRs.RecordCountPageN
'또 다른
'TotalPage=PageRs.RecordCountPageN
'TotalPage=Abs(Int(TotalPage))
'끝나면
TotalPage=PageRs.PageCount
'//현재 수신된 페이지 번호를 처리하며, 기본값은 1이므로 숫자형이 아닌 경우에는 1이 됩니다.
IsNumeric(CurrPage)이면
CurrPage=CLNg(현재 페이지)
CurrPage<1인 경우 CurrPage=1
CurrPage>TotalPage이면 CurrPage=TotalPage인 경우
또 다른
'//Dim M:M="":IsNumeric(M)=True
현재페이지=1
종료 조건
'------------------------------------------------ - -------------------------마치다
또 다른
총페이지=0
현재페이지=1
종료 조건
'//
PageRs.AbsolutePage = CurrPage 'absolutepage: 포인터를 페이지 시작 부분으로 설정
PageRs.PageSize=페이지N
서브 끝
개인 서브 초기화()
'프라이빗 TempA(10)
TempA(1)="{N1}" '//홈 페이지
TempA(2)="{N2}"'//이전 페이지
TempA(3)="{N3}"'//다음 페이지
TempA(4)="{N4}"'//마지막 페이지
TempA(5)="{N5}"'//현재 페이지 번호
TempA(6)="{N6}"'//총 페이지 수
TempA(7)="{N7}"'//페이지당 항목 수
TempA(8)="{N8}"'//총 기사 수
TempA(9)="{L}"'//루프 레이블 시작
TempA(10)="{N}"'//루프의 단일 레이블: 페이지 번호
TempA(11)="{L/}"'//루프 레이블 끝
'개인 TempB(8)
TempB(1)="집"
TempB(2)="이전 페이지"
TempB(3)="다음 페이지"
TempB(4)="마지막 페이지"
TempB(5)=CurrPage'//현재 페이지 번호
TempB(6)=TotalPage'//총 페이지 수
TempB(7)=PageN'//페이지당 항목 수
TempB(8)=TotalRecord'//총 기사 수
서브 끝
공개 서브 쇼(스타일)
IsErr=True인 경우
응답.ErrInfo 쓰기
하위 종료
Init()를 호출
하면 종료됩니다.
케이스 스타일 선택
사례 1
응답.쓰기 스타일A()
사례 2
응답.쓰기 스타일B()
사례 3
응답.쓰기 스타일C()
사례 4
응답.쓰기 스타일D()
그렇지 않은 경우
ErrInfo=ErrInfo&"현재 스타일은 존재하지 않습니다..."
응답.ErrInfo 쓰기
선택 종료
서브 끝
공용 함수 ShowStyle(스타일)
IsErr=True인 경우
ShowStyle=ErrInfo
종료 기능
Init()를 호출
하면 종료됩니다.
케이스 스타일 선택
사례 1
표시스타일= 스타일A()
사례 2
표시스타일= 스타일B()
그렇지 않은 경우
ErrInfo=ErrInfo&"현재 스타일은 존재하지 않습니다..."
ShowStyle=ErrInfo
선택 종료
끝 함수
개인 함수 StyleA()
'홈페이지 이전페이지 다음페이지 마지막페이지 이 페이지는 1/20페이지로 총 20페이지, 페이지당 10개의 글, 총 200개의 글로 구성되어 있습니다.
'//페이지 매기기 예: [홈] [이전 페이지] [다음 페이지] [마지막 페이지] [페이지: 4/5 페이지] [총 86개 기사/20개 기사/페이지] 이동: _ 페이지
'//태그: {N1} {N2} {N3} {N4} || 총계: {N8} 레코드 {N6} 페이지는 현재 페이지당 {N5} 페이지 {N7} 레코드입니다
IsEmpty(TempStr)이면
ErrInfo=ErrInfo&"템플릿이 비어 있습니다..."
스타일B=ErrInfo
종료 기능
종료 조건
어둑한
TotalPage>1이면
CurrPage>1이면
M="<a href='"&UrlStr&"Page=1'>"&"홈"&"</a>"
TempStr=바꾸기(TempStr,"{N1}",M)
M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"이전 페이지"&"</a>"
TempStr=바꾸기(TempStr,"{N2}",M)
CurrPage<TotalPage Then
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"다음 페이지"&"</a>"
TempStr=바꾸기(TempStr,"{N3}",M)
M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"마지막 페이지"&"</a>"
TempStr=바꾸기(TempStr,"{N4}",M)
또 다른
TempStr=Replace(TempStr,"{N3}","다음 페이지")
TempStr=Replace(TempStr,"{N4}","마지막 페이지")
종료 조건
또 다른
TempStr=Replace(TempStr,"{N1}","홈페이지")
TempStr=Replace(TempStr,"{N2}","이전 페이지")
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"다음 페이지"&"</a>"
TempStr=바꾸기(TempStr,"{N3}",M)
M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"마지막 페이지"&"</a>"
TempStr=바꾸기(TempStr,"{N4}",M)
종료 조건
또 다른
TempStr=Replace(TempStr,"{N1}","홈페이지")
TempStr=Replace(TempStr,"{N2}","이전 페이지")
TempStr=Replace(TempStr,"{N3}","다음 페이지")
TempStr=Replace(TempStr,"{N4}","마지막 페이지")
종료 조건
T=온도Str
T=바꾸기(T,"{N8}",총 레코드)
T=바꾸기(T,"{N6}",전체 페이지)
T=바꾸기(T,"{N5}",CurrPage)
T=바꾸기(T,"{N7}",페이지N)
온도Str=T
스타일A=온도Str
끝 함수
개인 함수 StyleB()
'홈페이지|< 1 2 3 4 5 6 7 >|
'//태그:{N1} {N2} {L}{N}{L/}{N3}{N4}
IsEmpty(TempStr)이면
ErrInfo=ErrInfo&"템플릿이 비어 있습니다..."
스타일B=ErrInfo
종료 기능
종료 조건
Dim ForceNum,BackNum'//현재 페이지 앞뒤에 표시되는 숫자
힘번호=5
뒤로번호=4
어둑한
'//첫 페이지
M="<a href='"&UrlStr&"Page=1'>"&TempB(1)&"</a>"
TempStr=바꾸기(TempStr,"{N1}",M)
'//마지막 페이지
M="<a href='"&UrlStr&"Page="&TempB(6)&"'>"&TempB(4)&"</a>"
TempStr=바꾸기(TempStr,"{N4}",M)
'//이전 페이지
남="|<"
CurrPage-1>=1이면
M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"|<"&"</a>"
종료 조건
TempStr=바꾸기(TempStr,"{N2}",M)
'//다음 페이지
남=">|"
CurrPage+1<=TotalPage 다음인 경우
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&">|"&"</a>"
종료 조건
TempStr=바꾸기(TempStr,"{N3}",M)
'//루프 라벨 제거
희미한 N1, N2, N3, N4, N5, N6
If InStr(TempStr,"{L}")>0 그러면
N1=InStr(온도Str,"{L}")
종료 조건
If InStr(TempStr,"{L/}")>0 그러면
N2=InStr(온도Str,"{L/}")
종료 조건
N2<=N1이면
ErrInfo=ErrInfo&"루프 레이블에 오류가 있습니다..."
스타일B=ErrInfo
종료 기능
종료 조건
N3=Mid(TempStr,N1,N2-N1+4)'//{L}{L/} 루프 태그를 포함한 스토리지 템플릿
N4=Replace(N3,"{L}","")'//{L}{L/} 루프 태그를 포함하지 않는 저장소 템플릿
N4=바꾸기(N4,"{L/}","")
'//페이지 번호 목록
희미한 첫 페이지 번호, 마지막 페이지 번호
CurrPage-ForceNum<=1이면
첫페이지번호=1
페이지목록=""
또 다른
FirstPageNum=CurrPage-ForceNum
페이지리스트="... ..."
종료 조건
CurrPage+BackNum>=TotalPage인 경우
LastPageNum=전체 페이지
페이지목록_2=""
또 다른
마지막 페이지 번호=현재 페이지+뒤 번호
PageList_2="... ..."
종료 조건
나는 어둡다
I=FirstPageNum에서 LastPageNum까지
I=CurrPage이면
N5=바꾸기(N4,"{N}","<b>"&I&"</b>")
N6=N6&N5
또 다른
M="<a href='"&UrlStr&"Page="&I&"'>"&I&"</a>"
N5=바꾸기(N4,"{N}",M)
N6=N6&N5
종료 조건
다음
TempStr=바꾸기(TempStr,N3,N6)
스타일B=온도Str
끝 함수
개인 함수 StyleC()
'홈페이지|< |<< 1 2 3 4 5 6 7 >>|
'//이 스타일은 StyleB를 기반으로 수정되어 두 개의 태그를 추가합니다: {N9} 이전 10페이지 {N10} 다음 10페이지
'//태그:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4}
딤 T
T=스타일B()
'//처음 10페이지
남="|<<"
CurrPage-10>=1인 경우
M="<a href='"&UrlStr&"Page="&CurrPage-10&"'>"&"|<<"&"</a>"
종료 조건
T=바꾸기(T,"{N9}",M)
남=">>|"
CurrPage+10<=TotalPage 다음인 경우
M="<a href='"&UrlStr&"Page="&CurrPage+10&"'>"&">>|"&"</a>"
종료 조건
T=바꾸기(T,"{N10}",M)
스타일C=T
끝 함수
개인 함수 StyleD()
'//이 스타일은 StyleC를 기반으로 수정되었습니다.
'//총 {N8} 레코드 {N6} 페이지는 현재 페이지당 {N5} 페이지 {N7} 레코드입니다.
'//홈페이지|< |<< 1 2 3 4 5 6 7 >>|
'//태그:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4}
딤 T
T=스타일C()
T=바꾸기(T,"{N8}",총 레코드)
T=바꾸기(T,"{N6}",전체 페이지)
T=바꾸기(T,"{N5}",CurrPage)
T=바꾸기(T,"{N7}",페이지N)
스타일D=T
종료 함수
종료 클래스
%>