백엔드 기사 추가, 기사 검색, 기사 상세 페이지는 모두 일반적인 방식으로 운영됩니다. 여기에는 설명이 없습니다.
[페이지]는 중간에 공백을 삭제해야 하는데, 스크립트 홈의 배경 페이징과 함께 반복되기 때문에 공백이 추가됩니다.
기사를 추가할 때 페이지 나누기를 원하는 곳에 페이지 나누기를 추가하세요: [페이지] (물론 이 기호를 다음과 같이 자연스럽게 사용할 수 있습니다: [페이지], &&&, ###, @@@.. ., 기사가 정상적으로 표시되어야 하는 곳에 표시되지 않는 한.)
입력 페이지(index.asp), 입력 완료 페이지(add.asp), 기사 목록 페이지(view.asp), 기사 내용 페이지(text.asp) 등 4개의 페이지를 사용했습니다. 페이지를 처리해야 하는데 다음 소개를 보면 일반 새들이 처리할 수 있을 것 같습니다. 핵심은 마지막 text.asp입니다. 페이징을 구현하는 모든 코드가 여기에 있습니다.
2단계: 오세요
기사 본문의 동적 데이터 부분에 몇 가지 트릭을 수행하십시오. 다음은 코드와 설명입니다.
다음과 같이 코드를 복사합니다.'페이징 처리를 위한 코드는 다음과 같습니다
.' 안전을 위해 교체 함수를 사용하여 페이징 코드 앞뒤에 전체 너비 공백을 추가합니다.
MMText=replace(rs(contents),[ page ], [ page ] )
MMfText= Split(MMText,[ page ])
'ubound 함수를 사용하여 분할할 페이지 수를 가져옵니다. 아래 첨자 값은 0부터 시작합니다.
contentNum=ubound(MMfText)
page=Clng(request(page))
if page<1 then
page=1
end if
'좀 더 직관적으로 보기 위해 시작 페이지를 1로 설정하고, 전체 페이지 수에 1을 더합니다.
if page>contentNum+1 then
page=contentNum+1
end if
'위의 url 매개변수에서 얻은 표시할 측의 변수로 변경하고
i=page to page
response.write MMfText(i-1)
next
'
에 대한 루프에 페이지를 표시합니다.cint(contentNum)>0인 경우
페이지 매김 나열
페이지<>1이면
response.write
<a href='text.asp?id=&request(id)&&page=&page-1&'>[이전 페이지]</a>
end if
'아래 첨자 값의 출처를 기억하세요. 0부터 시작하여 여기에서 1부터 페이징을 시작하고 p=1의 합계에 1을 추가하여
contentNum+1
인 경우 page=p인 경우
response.write <a href='text.asp?id=&request(id)&&page= &p&'> <글꼴 color=red>[&p&]</font></a>
else
response.write <a href='text.asp?id=&request(id)&&page=&p&'>[&p&]</a>
end if
next
if page<>contentNum+1 then
response.write <a href='text.asp?id=&request(id)&&page=&page+1&'>[다음 페이지]</a>
end if
end
아래 글이 다른 사이트의 글이라면
참고하셔도 됩니다.
긴 기사 페이지가 페이지 나누기로 표시됩니다. ASP를 사용하여 이 기능을 구현하려고 하는데 단어 수에 따라 페이지를 매기는 방법만 있다는 것을 알 수 있습니다. 그러나 이 방법에는 버그가 있습니다. 기사 내용에 UBB 코드가 있으면 매우 쉽습니다. 이로 인해 [code][/code] 사이에 페이지 매김이 발생하거나 단순히 [code]가 [co 및 de]로 분해되어 기사 표시에 오류가 발생합니다.
다음 단계를 수행하면 이 작업이 가능해집니다.
1단계:
백그라운드에서 기사 추가, 기사 검색, 기사 세부정보 페이지 모두 일반적인 방법으로 수행됩니다. 여기에는 설명이 없습니다. 기사를 추가할 때 페이지 나누기를 추가하세요. ||| (물론 다음과 같이 이 기호를 자연스럽게 사용할 수 있습니다: [ page ], &&&, ###, @@@..., 기사가 정상적으로 표시될 곳에 나타나지 않는 한)
입력 페이지(index.asp), 입력 완료 페이지 총 4페이지를 사용했습니다. (추가).asp), 기사 목록 페이지(view.asp), 기사 내용 페이지(display.asp), 처음 3개는 아래 그림을 보면 일반 새들이 처리할 필요가 없는 페이지라고 생각됩니다. 핵심은 마지막 A displasy.asp이며 페이징을 구현하는 모든 코드는 여기에 있습니다.
2단계:
기사 텍스트의 동적 데이터 부분에 몇 가지 트릭을 수행합니다. 다음은 코드와 설명입니다.
다음과 같이 코드를 복사합니다.
<%
'여기서 어떤 페이지의 콘텐츠를 표시하려면 수신된 페이징 매개변수를 처리해야 합니다
. 다음 두 문장은 페이지 매개변수가 전달되지 않은 경우 변수 pageNum이 첫 번째 페이지의 값을 사용하도록 하는 것입니다. 0
If Request(page)= Then
pageNum=0
'그렇지 않으면 전달된 페이지의 매개변수 값을 변수에 할당합니다. , 다른
페이지를
표시하려면ElsepageNum=Request(page)
End if
%>
<%
'선택적 실행 UBB 코드를 추가하면 다음 코드를 추가할 수 있습니다
.'rs(NoUBB)는 데이터베이스의 UBB 비활성화에 대한 필드이며, 0은 비활성화를 의미하고, 1은 실행을 의미합니다
. rs(NoUBB)=0 then
'기사 콘텐츠에 연결할 때 오류를 방지하려면 바꾸기 기능을 사용하여 페이징 코드 앞뒤에 전체 너비를 추가하세요. |||
'rs(content)는 텍스트 필드입니다. 데이터베이스, 여기에 UBB를 추가하거나 UBB를 비활성화하세요.
Content=Replace((unHTML(rs(content))),|||, ||| )
Elseif rs(NoUBB)=1 then
Content=Replace((ubb(rs(content))),|||, || | )
End if
%>
<%
'Here is the key
' 기사를 섹션별로 꺼내서 변수
contentStr=split(Content,|||)
에 저장하기 위해 분할 기능을 사용합니다.'URL 매개변수에서 방금 얻은 표시되는 변수에 따라 루프에 페이지를 표시합니다.
For i=pageNum to pageNum
%>
<!--이것은 기사의 텍스트 내용이 됩니다-->
<%= ContentStr %>
< % Next %>
</td>
</tr>
<tr>
<td height=30 class=ClassName>이 글은
<%
'페이징 영역에서는 ubound(ContentStr)를 사용하여 기사가 몇 페이지로 나누어져 있는지 알아냅니다. 0부터 시작하므로 총 페이지 수에 1을 더해야 합니다.
p = 0인 경우 ubound(ContentStr )
'링크는 여전히 이 페이지이지만 기사 ID 매개변수 뒤에 페이징 매개변수를 추가해야 합니다: 페이지
%>
<a href=display.asp?ID=<%=rsquest(ID)%>&page=<%= p%> 클래스=><%=p+ 1%></a>
<%다음%> 페이지는
매우 간단합니다. 주석을 모두 삭제하면 코드는 15줄밖에 되지 않습니다. 그러나 이전 페이지, 다음 페이지 및 다음 페이지를 강조 표시하는 기능을 가지려면 여전히 처리가 필요합니다. 현재 페이지는 완벽할 것입니다.
기사에 페이지 나누기가 나타나지 않으면 모든 유형의 오류가 발생하지 않습니다. 물론 |||의 수를 늘릴 수 있습니다(예: ||||||). 기사에 6개 이하가 나타나면 괜찮지만, 6개 이상이면 페이지 나누기가 잘 됩니다.