레코드와 레코드를 삽입하는 방법을 배운 경우 간단하고 완전한 기사 시스템, 뉴스 시스템 및 메시지 시스템이 문제가되지 않는다고 말해야합니다. 다음 질문은 정보 내용이 세그먼트가 증가함에 따라 페이지만으로 모든 정보를 표시하는 것이 좋지 않습니다. 따라서 해결책은 페이징 기술을 사용하는 것입니다.
1, rs.recordCount
분명히, RecordCount는 데이터베이스 테이블에 몇 개의 레코드 수를 표시하는 데 사용되며 테이블에 얼마나 많은 행이 있는지 생생하게 설명 할 수도 있습니다. 이 페이지는 종종 총 N 기사 및 기타 정보를 표시하는 데 사용됩니다.
2. Rs.Pagesize
Rs.Pagesize는 페이지의 크기입니다. 이는 ASP 페이지에 레코드 수를 표시 할 수 있음을 의미합니다. 값은 자주 보는 각 페이지에 표시된 N 기사와 같은 정보와 같은 값을 직접 정의합니다.
3. Rs.Absolutepage 및 Rs.PageCount
페이지 매김에 관해서는 Rs.Absolutepage를 언급해서는 안됩니다. 레코드 세트의 AbsolutePage 속성의 주요 기능은 현재 표시되는 페이지를 결정하는 것입니다. 그 가치는 기반입니다. Rs.Pagesize가 지정되면 Rs.PageCount의 정보 값은 Rs.RecordCount 및 Rs.Pagesize의 나누기 결과입니다. 예를 들어, 총 정보 레코드 Rs.RecordCount에는 20 개의 항목이 있으며 페이지 당 표시된 항목 수는 5 개의 항목으로 설정됩니다. Rs.PageCount 페이지 수는 20/5 = 4 페이지이고 Rs.AbsolutePage는 1 페이지, 2 페이지 ... 4 페이지 일 수 있습니다.
지금 말하자면, 우리는 디버그 할 특정 프로그램을 찾을 것입니다. 다음과 같이 showit.asp를 계속 수정하십시오.
<!-#포함 파일 = "conn.asp"-> <% set rs = server.createobject ( "adodb.recordset") SQL = "CN_ID DESC의 CNARTICLE ORDER에서 선택 * 선택" Rs. Open SQL, Conn, 1,1 %> <% page = request.querystring ( "page") '페이지 값은 허용 값입니다 Rs.Pagesize = 2 '페이지 당 표시되는 레코드 수 rs.absolutepage = page '현재 페이지가 수신 된 페이지 수와 같습니다. %> <% i = 1 ~ rs.pagesize의 경우 '다음 루프에 사용하여 현재 페이지의 레코드를 순서대로 읽으십시오. 그렇다면 rs.eof 종료 끝 If response.write ( "<br> 기사의 내용은"& rs ( "CN_Content"))입니다. rs.movenext 다음%> <% Rs.Close RS = 아무것도 설정하지 않습니다 conn.close Conn = 아무것도 설정하지 않습니다 %> |
여기서, 디버깅의 전제는 데이터베이스의 레코드가 4보다 비교적 커서 테스트 효과가 명백해야한다는 것입니다. 테스트 방법은 showit.asp 이후 웹 페이지의 디스플레이 효과를 관찰하기 위해? page = 1 또는? page = 2 및 기타 디버깅을 추가하는 것입니다.
실제로, 결국 데이터베이스 컨텐츠를 표시하는 것은 다음과 같습니다
<% i = 1 ~ rs.pagesize의 경우 그렇다면 rs.eof 종료 끝 If response.write ( "<br> 기사의 내용은"& rs ( "CN_Content"))입니다. rs.movenext 다음%> |
이 기능은 재생되지만 상상해보십시오. 그러나 왜? page = 1과? page = 2를 추가하는 이유는 다른 결과를 보여 주나요? ... 그것은 분명히 rs.AbsolutePage의 기능입니다. 나는 이것을 명확하게 이해한다. 나는 페이지 매김의 전반적인 아키텍처가 약간 혼란 스럽다고 믿는다.