背景記事の追加、記事の取得、記事の詳細ページはすべて通常の方法で動作します。ここには説明がありません。
なお、[page]はスクリプトホームのバックグラウンドページングで繰り返されるため、途中のスペースを削除する必要があります。
記事を追加するときは、ページを配置したい場所に改ページを追加します: [ページ] (もちろん、この記号は [ページ]、&&&、###、@@@ のように気軽に使用できます。 .、記事が通常表示されるべき場所に表示されない限り。)
入力ページ (index.asp)、入力完了ページ (add.asp)、記事一覧ページ (view.asp)、記事コンテンツ ページ (text.asp) の 4 つのページを使用しました。最初の 3 つは使用しません。ページを処理する必要があるので、次の紹介を見ると、普通の鳥がそれを行うことができると思います。キーは最後の text.asp で、ページングを実装するためのすべてのコードがここにあります。
ステップ 2: 来てください
記事本文の動的データ部分でいくつかのトリックを実行します。コードと説明は次のとおりです。
次のようにコードをコピーします。「ページングを処理するコードは次のとおりです
」 念のため、replace 関数を使用してページング コードの前後に全角スペースを追加します。
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パラメータから取得した表示する側の変数に変更し、ループでページを表示
for i=page to page
response.write MMfText(i-1)
next
'
cint(contentNum)>0 の場合の
リストのページネーション
then
if page<>1 then
response.write <a href='text.asp?id=&request(id)&&page=&page-1&'>[前のページ]</a>
end if
'添え字の値が次のものであることを覚えておいてください
ここでは 0 から開始して 1 からページングを開始し、p=1 から contentNum+1 までの
合計に 1 を加算します。
if page=p then
response.write <a href='text.asp?id=&request(id)&&page= &p&'> <font 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:
バックグラウンドでの記事の追加、記事の取得、および記事の詳細ページはすべて通常の方法で操作されます。ここでは説明がありません。記事を追加するときは、ページ分割したい場所に改ページを追加します: ||| (もちろん、この記号は [ ページ] のように気軽に使用できます) ]、&&&、###、@@@...、通常記事が表示される場所に表示されない限り)
入力ページ(index.asp)と入力完了ページの4ページを使用しました
。(追加).asp)、記事一覧ページ (view.asp)、記事コンテンツ ページ (display.asp)、最初の 3 つは処理する必要のないページです。下の図を見ると、普通の鳥はできると思います。重要なのは最後の A displasy.asp で、ページングを実装するすべてのコードがここにあります。
ステップ 2:
記事テキストの動的データ部分でいくつかのトリックを実行します。 以下はコードと説明です:
次のようにコードをコピーします:
<%
'ここでは、どのページのコンテンツを表示するために受信したページング パラメーターを処理する必要があります
。次の 2 つの文は、ページ パラメーターが渡されない場合に、変数 pageNum に最初のページの値を取得させることを目的としています。 0
If Request(page)= then
pageNum=0
'それ以外の場合は、渡されたページのパラメーターの値を変数に割り当てます
, 他のページを
表示する
ElsepageNum=Request(page)
End if
%>
<%
'オプションの実行 UBB コードを追加する場合は、次のコードを追加できます
'rs(NoUBB) は UBB の無効化に関するデータベース内のフィールドです。0 は無効化を意味し、1 は実行を意味し
ますrs(NoUBB)=0 then
'記事コンテンツと接続する際のエラーを避けるため、Replace 関数を使用してページング コードの前後に全角を追加します |||
'rs(content) は、データベース、ここに UBB を追加するか、UBB を無効にします
Content=Replace((unHTML(rs(content))),|||, ||| )
Elseif rs(NoUBB)=1 then
Content=Replace((ubb(rs(content))),|||, || | )
End if
%>
<%
'ここがキーです
' 分割関数を使用して記事をセクションごとに取り出し、変数
contentStr=split(Content,|||)
に格納します。'URL パラメータから取得した表示対象の変数に従って、ループでページを表示します
For i=pageNum to pageNum
%>
<!--これが記事のテキストコンテンツになります-->
<%=ContentStr % >
< % 次へ %>
</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>
<% Next %> ページは
非常に単純ですが、すべてのコメントを削除すると、コードは 15 行だけになります。ただし、前のページ、次のページ、および次のページを強調表示する機能を持たせるためには、まだ処理が必要です。現在のページです。
記事内に改ページが表示されない限り、すべての種類のエラーが発生することはテスト済みです。たとえば、|||||| のように、||| の数を増やすこともできます。記事内に | が 6 つ以下の場合は問題ありませんが、6 つを超える場合は適切な改ページを選択してください。