ASPプログラミング入門(二十):ADOコンポーネントの改ページプログラム
どのように記録を挿入し、どのように記録を表示するかを学んだはずです。今の簡単で完璧な文章システム、ニュースシステムと伝言システムは問題になりません。次に次の問題があります。情報の内容が不段に増えるにつれて、単独で一枚のページを通してすべての情報を表示するのは無理です。だから、解決の方法は改ページ技術を採用することです。1,rs.RecordCountは明らかにしています。RecordCountはデータベーステーブルの中の全部で何本の記録を表示するものです。また、表の中に全部で何行ありますか?改ページでよく使われるのは、全部でN編の文章などの合計情報が表示されます。2,rs.PageSizer.PageSizeは、つまり1ページの大きさであり、1枚のASPページが記録の本数を表示することができるという意味である。値は自分で定義しています。例えば、よく見るページごとにN編の文章を表示するなどです。3,rs.Absolute Pageとrs.pagecountは改ページに言及しています。rs.Absolute Pageに言及しないわけにはいきません。記録セットのAbsolute Page属性は、現在表示されているページ数を決定する役割を果たしています。その値は根拠があり、rs.PageSizeを指定した場合、rs.pagecountの情報値はrs.RecordCountとrs.PageSizeの割り付け結果である。例えば、総情報記録rs.RecordCountは全部で20条で、各ページの表示ストリップ数rs.PageSizeは5条に設定されています。ページ数rs.pagecount数は20/5=4ページで、rs.Absolution Pageは第1ページ、第2ページのみとなります。第4ページ。今と言えば、具体的なプログラムを作って調整してみます。引き続きshowwit.aspを以下のように修正します。
<!--啝とinclude file=「conn.asp」<%Set rs=Server.reate Object(「ADODB.Recordset」)sql=「Select*from cnarticle order by cn_id desc「rs.Open sql,conn,1%」<%page=request.querystring("page")'page値は受け取り値rs.PageSize=2'ページごとに記録数を表示します。AbsoluutePage=Page'は現在ページが受信したページ数%に等しいことを表示します。“&rs(”cn_content").rs.MoveNextnext%<%s.close Set rs=Nothingconn.close set conn=nothing%>HEREは、デバッグの前提として、データベース内のレコードは相対的に4つより大きくなります。このようなテストの効果は明らかです。そしてテストの方法はshowwit.aspの後に追加しますか?page=1かpage=2などは調整してホームページの表示効果を観察します。つまり、データベースの内容を表示するということです。
<%For i=1 to rs.PageSizif rs.EOF thenExit For end if reponse.write('
文章の内容は:&rs(「cn_」content「)rs.MoveNextnext%」という役割を果たしていますが、プログラムは2つの情報しか表示されないはずです。しかし、なぜ追加されましたかpage=1とpage=2は違った結果を表示しますか?…それは間違いなくRS.Absolute Pageの役割です。これをはっきりさせて、改ページの全体の構造が少し目鼻がついたことを信じます。
<!--啝とinclude file=「conn.asp」-「%Set rs=Server.reate Object(「ADODB.Recordset」)sql=「Select*from cnarticle」rs.Open sql,conn,1%file path=reest.servareableinfo""""""""""""%page=request.querystring""""""""""page値は受け取り値rsrsrs.PageSize=2'ページごとに記録数を表示します。if Not IsNumeric(page)then'は、page値がデジタルpage=panegeであるかどうかを判断します。大きい総ページ数rs.AbsoluutePage=rs.PageCount'は、現在の表示ページが最後のページelseif Pageに等しい場合は、Pageが0 rs.Absolution Page=1'以下であれば、現在の表示ページを設定すると、第1ページのelsers.Absolution Page=Page'がゼロより大きい場合は、現在のページが受信したページ数end freelsers.Absolute Page=1 end ifPage=rs.Absolute Paged%<%For=1 to rs.PageSize'を用いてfor nextサイクルで現在のページの記録を順次読み出します。if rs.EOF thenExit Foend freponse.write(タイトル:記事です。title").reponse.write(
文章の著者は「&rs(」cn_author").reponse.write(
文章の加入時間は「&rs(」cn_time").reponse.write(
文章の内容は「&rs(」です。content"))reponse.write("
""rs.MoveNext Next%"
<!--啝とinclude file=「conn.asp」<%Set rs=Server.reate Object(「ADODB.Recordset」)sql=「Select*from cnarticle order by cn_id desc「rs.Open sql,conn,1%」<%page=request.querystring("page")'page値は受け取り値rs.PageSize=2'ページごとに記録数を表示します。AbsoluutePage=Page'は現在ページが受信したページ数%に等しいことを表示します。“&rs(”cn_content").rs.MoveNextnext%<%s.close Set rs=Nothingconn.close set conn=nothing%>HEREは、デバッグの前提として、データベース内のレコードは相対的に4つより大きくなります。このようなテストの効果は明らかです。そしてテストの方法はshowwit.aspの後に追加しますか?page=1かpage=2などは調整してホームページの表示効果を観察します。つまり、データベースの内容を表示するということです。
<%For i=1 to rs.PageSizif rs.EOF thenExit For end if reponse.write('
文章の内容は:&rs(「cn_」content「)rs.MoveNextnext%」という役割を果たしていますが、プログラムは2つの情報しか表示されないはずです。しかし、なぜ追加されましたかpage=1とpage=2は違った結果を表示しますか?…それは間違いなくRS.Absolute Pageの役割です。これをはっきりさせて、改ページの全体の構造が少し目鼻がついたことを信じます。
<!--啝とinclude file=「conn.asp」-「%Set rs=Server.reate Object(「ADODB.Recordset」)sql=「Select*from cnarticle」rs.Open sql,conn,1%file path=reest.servareableinfo""""""""""""%page=request.querystring""""""""""page値は受け取り値rsrsrs.PageSize=2'ページごとに記録数を表示します。if Not IsNumeric(page)then'は、page値がデジタルpage=panegeであるかどうかを判断します。大きい総ページ数rs.AbsoluutePage=rs.PageCount'は、現在の表示ページが最後のページelseif Pageに等しい場合は、Pageが0 rs.Absolution Page=1'以下であれば、現在の表示ページを設定すると、第1ページのelsers.Absolution Page=Page'がゼロより大きい場合は、現在のページが受信したページ数end freelsers.Absolute Page=1 end ifPage=rs.Absolute Paged%<%For=1 to rs.PageSize'を用いてfor nextサイクルで現在のページの記録を順次読み出します。if rs.EOF thenExit Foend freponse.write(タイトル:記事です。title").reponse.write(
文章の著者は「&rs(」cn_author").reponse.write(
文章の加入時間は「&rs(」cn_time").reponse.write(
文章の内容は「&rs(」です。content"))reponse.write("
""rs.MoveNext Next%"