페이징 클래스를 작성할 때 클래스 객체 참조 전달에 관한 매우 영리한 문제에 직면했는데, 여기서 무슨 일이 일어나는지 설명하면 페이징을 사용하는 코드를 보는 것이 모든 사람이 명확하게 이해하기 어려울 수 있습니다. 클래스 CPaging.
다음과 같이 코드 코드를 복사합니다.
클래스 CPaging
공용 RS ' RecordSet 객체
Public Mark '포인터 라벨
Private sSize ' 페이지당 디스플레이 수
Private sTotal '총 레코드 수
Private sPage '현재 페이지 번호
Private sCount '총 페이지 수
비공개 하위 클래스_초기화
s크기 = 20
s페이지 = 1
개수 = 1
서브 끝
비공개 하위 클래스_종료
Closeobj RS
서브 끝
'페이지 당 표시 수
부동산 임대 규모(값)
sSize = 값
끝 속성
속성 가져오기 크기
크기=sSize
끝 속성
'현재 페이지 번호
부동산 임대 페이지(값)
IsNumeric(값)이 아닌 경우
s페이지 = 1
또 다른
sPage = 값
종료 조건
끝 속성
속성 가져오기 페이지
If (sPage - 1) * sSize > sTotal Then
sTotal Mod sSize = 0이면
페이지=전체/크기
또 다른
페이지 = 전체 / sSize +1
종료 조건
ElseIf sPage < 1 그러면
페이지=1
또 다른
페이지=sPage
종료 조건
끝 속성
'총 페이지 수
속성 가져오기 개수
sTotal Mod sSize = 0이면
개수 = sTotal / sSize
또 다른
개수 = sTotal / sSize + 1
종료 조건
끝 속성
'총 레코드 수
PropertyGetTotal()
총계 = 총계
끝 속성
공개 함수 열기(Byval SQLString)
DB.Openquery(RS,SQLString)를 사용해 보세요.
sTotal = RS.RecordCount
기능 종료
수업 종료
다음은 호출 페이지입니다
다음과 같이 코드 코드를 복사합니다.
희미한 제품
제품 설정 = 새로운 CPaging
제품 포함
.Size = 15 '페이지당 디스플레이 수
.Page = PageNum '현재 페이지
끝
Products.Open(ListSQL)을 사용해 보세요.
Products.RS.Bof 및 Products.RS.Eof인 경우
Response.Write(<TR><TD colspan=8>기록 없음</TD></TR>)
또 다른
나는 어둡다
나는 = 0
제품.RS.이동(제품.페이지 - 1) * 제품.크기
제품이 아닌 동안 수행하십시오.RS.Eof
Response.Write(<TR onmouseup=MouseUp(this); onmousedown=MouseDown(this); onmouseover=MouseOver(this); onclick=Click(this); onmouseout=MouseOut(this);>&vbCrLf)
Response.Write(<TD align=middle nowrap> & Products.RS(ProductsClassName) & </TD>&vbCrLf)
Response.Write(<TD align=left nowrap> & Products.RS(제품 이름) & </TD>&vbCrLf)
응답.쓰기(</TR>&vbCrLf)
나=나+1
i >= Products.Size인 경우 종료 Do
제품.RS.이동다음
고리
종료 조건
8번째 줄을 보니 .net - 네임스페이스? 의 그림자가 살짝 엿보이는 것 같았습니다.