긴 기사 페이지가 페이지 나누기로 표시됩니다. ASP를 사용하여 이 기능을 구현하고 싶지만 단어 수에 따라 페이지를 매기는 방법만 있음을 알 수 있습니다. 그러나 이 방법에는 버그가 있습니다. 기사 콘텐츠에 UBB 코드가 있으면 [code][/code] 사이에 페이지 매김이 발생하거나 단순히 [code]를 [co 및 de]로 분해하여 기사 표시에 오류가 발생합니다.
다음 단계를 수행하면 이 작업이 가능해집니다.
1단계:
백그라운드에서 기사 추가, 기사 검색, 기사 상세 페이지는 모두 일반적인 기사 시스템을 따릅니다. 여기에는 설명이 없습니다. 기사를 추가할 때 페이지 나누기를 추가하세요: "|||" (물론 이 기호는 다음과 같이 자연스럽게 사용할 수 있습니다: [page], &&&, ###, @@@ ... , 기사가 정상적으로 표시될 위치에 나타나지 않는 한)
입력 페이지(index.asp), 입력 완료 페이지(add.asp), 기사 목록 페이지(보기)의 4개 페이지를 사용했습니다. .asp), 기사 내용 페이지(display.asp), 처음 3개는 처리할 필요가 없는 페이지입니다. 아래 그림을 보면 일반 새가 할 수 있는 게 핵심인 것 같습니다. 페이징에 대한 모든 코드는 여기에 있습니다.
2단계:
기사 본문의 동적 데이터 부분에 몇 가지 트릭을 수행합니다. 다음은 코드와 설명입니다
.
'여기서 수신된 페이징 매개변수를 처리하여 어떤 페이지의 콘텐츠를 표시해야 합니다.
'다음 두 문장은 페이지 매개변수가 전달되지 않은 경우 변수 pageNum이 첫 번째 페이지의 값을 취하도록 하는 것입니다: 0
요청("page")=""인 경우
페이지 번호=0
'그렇지 않으면 다른 페이지를 표시하기 위해 전달된 페이지의 매개변수로 변수에 값을 할당합니다.
또 다른
pageNum=요청("페이지")
다음과 같은 경우 종료
%>
<%
'선택적 실행 UBB 코드를 추가하면 다음 코드를 추가할 수 있습니다.
'rs("NoUBB")는 UBB 비활성화에 대한 데이터베이스의 필드입니다. 0은 비활성화됨을 의미하고 1은 실행됨을 의미합니다.
rs("NoUBB")=0이면
'기사 내용과의 연결 오류를 방지하기 위해 바꾸기 기능을 사용하여 페이징 코드 "|||" 앞뒤에 전각을 추가합니다.
'rs("content")는 데이터베이스의 텍스트 필드입니다. 여기에 UBB를 추가하거나 UBB를 비활성화하세요.
Content=Replace((unHTML(rs("content"))),"|||"," ||| ")
Elseif rs("NoUBB")=1 다음
Content=Replace((ubb(rs("content"))),"|||"," ||| ")
다음과 같은 경우 종료
%>
<%
'여기 열쇠가 있다
'우리는 분할 기능을 사용하여 기사를 섹션으로 추출하고 이를 변수 콘텐츠에 저장합니다.
ContentStr=split(콘텐츠,"|||")
'URL 매개변수에서 방금 얻은 표시되는 변수에 따라 페이지가 루프로 표시됩니다.
i=pageNum에서 pageNum까지
%>
<!--이 글의 내용은 다음과 같습니다-->
<%=ContentStr %>
<% 다음 %>
</td>
</tr>
<tr>
<td height="30" class="ClassName">이 글은 다음과 같이 나누어져 있습니다.
<%
'페이징 영역에서는 ubound(ContentStr)를 사용하여 기사가 몇 페이지로 나누어져 있는지 알아냅니다. 참고로 0부터 시작하므로 총 페이지 수에 1을 더해야 합니다.
p = 0 to ubound(ContentStr)
'링크는 여전히 이 페이지이지만 기사 ID 매개변수 뒤에 페이징 매개변수가 추가됩니다.
%>
<a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p+1%></a>
<% 다음 %> 페이지
아주 간단합니다. 주석을 모두 삭제하면 15줄의 코드만 남게 됩니다. 하지만 이전 페이지, 다음 페이지, 현재 페이지를 강조 표시하는 기능을 갖추려면 여전히 처리가 필요합니다. .
기사에 페이지 나누기가 나타나지 않으면 모든 유형이 잘못되지 않습니다. 물론 ||| 수를 늘릴 수 있습니다(예: ||||||). 이하가 기사에 표시됩니다. 모든 것이 괜찮지만, 6개 이상이면 페이지 나누기를 잘 선택하세요.