钟夏夜 发表于 2008-12-9 09:55:40

用Dreamweaver ASP实现分页技术的参考 (1)

<P>  今天心情有点激动,想把"关于用DW ASP实现分页技术的参考"分享给用DW ASP做网页的朋友们.去掉只有"第一页,前一页,下一页,最后一页"的小痛苦 。<BR>  此效果最后的显示是:第N页[共*页] &lt;&lt;1 2 3 4 5 6 7 8 9 10 &gt;&gt;。 </P>

<P>  用DW ASP做网页时,在绑定记录集后,代码页里马上出现以下代码: </P>

<P>以下是引用片段:<BR>&lt;%<BR>Dim Recordset1<BR>Dim Recordset1_numRows<BR>Set Recordset1 = Server.CreateObject("ADODB.Recordset")<BR>Recordset1.ActiveConnection = MM_数据库名_STRING<BR>Recordset1.Source = "SELECT * FROM 表名"<BR>Recordset1.CursorType = 0<BR>Recordset1.CursorLocation = 2<BR>Recordset1.LockType = 1<BR>Recordset1.Open()<BR>Recordset1_numRows = 0<BR>%&gt;</P>

<P><BR>  现在我们要来对代码做点修改,请在上面代码中修改为如下的代码: </P>

<P>以下是引用片段:<BR>&lt;%<BR>Dim I<BR>Dim RPP<BR>Dim PageNo<BR>I=1<BR>RPP=50<BR>PageNo=CInt(Request("PageNo"))<BR>’上面即是新插入的,<BR>Dim Recordset1<BR>Dim Recordset1_numRows<BR>Set Recordset1 = Server.CreateObject("ADODB.Recordset")<BR>Recordset1.ActiveConnection = MM_数据库名_STRING<BR>Recordset1.Source = "SELECT * FROM 数据库名"<BR>Recordset1.CursorType = 1 ’将上面代码的0改为1.<BR>Recordset1.CursorLocation = 2<BR>Recordset1.LockType = 1<BR>Recordset1.Open()<BR>Recordset1_numRows = 0 ’再在此行的下一行开始加入如下代码:<BR>Recordset1.PageSize=RPP<BR>If PageNo&lt;=0 Then PageNo=1<BR>If PageNo&gt;Recordset1.PageCount Then PageNo=Recordset1.PageCount<BR>Recordset1.AbsolutePage=PageNo<BR>Sub ShowPageInfo(tPageCount,cPageNo)<BR>Response.Write "第"&amp;cPageNo&amp;"页[共"&amp;tPageCount&amp;"页]"<BR>End Sub<BR>Sub ShowPageNavi(tPageCount,cPageNo)<BR>If cPageNo&lt;1 Then cPageNo=1<BR>If tPageCount&lt;1 Then tPageCount=1<BR>If cPageNo&gt;tPageCount Then cPageNo=tPageCount<BR>Dim NaviLength<BR>NaviLength=10 ’NaviLength:显示的数字链接个数<BR>Dim I,StartPage,EndPage<BR>StartPage=(cPageNo\NaviLength)*NaviLength 1<BR>If (cPageNo Mod NaviLength)=0 Then StartPage=StartPage-NaviLength<BR>EndPage=StartPage NaviLength-1<BR>If EndPage&gt;tPageCount Then EndPage=tPageCount<BR>If StartPage&gt;1 Then<BR>Response.Write "&lt;a class=""pageNavi"" href=""?PageNo=" &amp; (cPageNo-NaviLength) &amp; """&gt;&lt;&lt;&lt;/a&gt; "<BR>Else<BR>Response.Write "&lt;font color=""#CCCCCC""&gt;&lt;&lt;&lt;/font&gt; "<BR>End If<BR>For I=StartPage To EndPage<BR>If I=cPageNo Then<BR>Response.Write "&lt;b&gt;"&amp;I&amp;"&lt;/b&gt;"<BR>Else<BR>Response.Write "&lt;a class=""pageNavi"" href=""?PageNo=" &amp; I &amp; """&gt;" &amp; I &amp; "&lt;/a&gt;"<BR>End If<BR>If I&lt;&gt;tPageCount Then Response.Write "&amp;nbsp;"<BR>Next<BR>If EndPage&lt;tPageCount Then<BR>Response.Write " &lt;a class=""pageNavi"" href=""?PageNo=" &amp; (cPageNo NaviLength) &amp; """&gt;&gt;&gt;&lt;/a&gt;"<BR>Else<BR>Response.Write " &lt;font color=""#CCCCCC""&gt;&gt;&gt;&lt;/font&gt; "<BR>End If<BR>End Sub<BR>%&gt;



<P>  今天心情有点激动,想把"关于用DW ASP实现分页技术的参考"分享给用DW ASP做网页的朋友们.去掉只有"第一页,前一页,下一页,最后一页"的小痛苦 。<BR>  此效果最后的显示是:第N页[共*页] &lt;&lt;1 2 3 4 5 6 7 8 9 10 &gt;&gt;。 </P>

<P>  用DW ASP做网页时,在绑定记录集后,代码页里马上出现以下代码: </P>

<P>以下是引用片段:<BR>&lt;%<BR>Dim Recordset1<BR>Dim Recordset1_numRows<BR>Set Recordset1 = Server.CreateObject("ADODB.Recordset")<BR>Recordset1.ActiveConnection = MM_数据库名_STRING<BR>Recordset1.Source = "SELECT * FROM 表名"<BR>Recordset1.CursorType = 0<BR>Recordset1.CursorLocation = 2<BR>Recordset1.LockType = 1<BR>Recordset1.Open()<BR>Recordset1_numRows = 0<BR>%&gt;</P>

<P><BR>  现在我们要来对代码做点修改,请在上面代码中修改为如下的代码: </P>

<P>以下是引用片段:<BR>&lt;%<BR>Dim I<BR>Dim RPP<BR>Dim PageNo<BR>I=1<BR>RPP=50<BR>PageNo=CInt(Request("PageNo"))<BR>’上面即是新插入的,<BR>Dim Recordset1<BR>Dim Recordset1_numRows<BR>Set Recordset1 = Server.CreateObject("ADODB.Recordset")<BR>Recordset1.ActiveConnection = MM_数据库名_STRING<BR>Recordset1.Source = "SELECT * FROM 数据库名"<BR>Recordset1.CursorType = 1 ’将上面代码的0改为1.<BR>Recordset1.CursorLocation = 2<BR>Recordset1.LockType = 1<BR>Recordset1.Open()<BR>Recordset1_numRows = 0 ’再在此行的下一行开始加入如下代码:<BR>Recordset1.PageSize=RPP<BR>If PageNo&lt;=0 Then PageNo=1<BR>If PageNo&gt;Recordset1.PageCount Then PageNo=Recordset1.PageCount<BR>Recordset1.AbsolutePage=PageNo<BR>Sub ShowPageInfo(tPageCount,cPageNo)<BR>Response.Write "第"&amp;cPageNo&amp;"页[共"&amp;tPageCount&amp;"页]"<BR>End Sub<BR>Sub ShowPageNavi(tPageCount,cPageNo)<BR>If cPageNo&lt;1 Then cPageNo=1<BR>If tPageCount&lt;1 Then tPageCount=1<BR>If cPageNo&gt;tPageCount Then cPageNo=tPageCount<BR>Dim NaviLength<BR>NaviLength=10 ’NaviLength:显示的数字链接个数<BR>Dim I,StartPage,EndPage<BR>StartPage=(cPageNo\NaviLength)*NaviLength 1<BR>If (cPageNo Mod NaviLength)=0 Then StartPage=StartPage-NaviLength<BR>EndPage=StartPage NaviLength-1<BR>If EndPage&gt;tPageCount Then EndPage=tPageCount<BR>If StartPage&gt;1 Then<BR>Response.Write "&lt;a class=""pageNavi"" href=""?PageNo=" &amp; (cPageNo-NaviLength) &amp; """&gt;&lt;&lt;&lt;/a&gt; "<BR>Else<BR>Response.Write "&lt;font color=""#CCCCCC""&gt;&lt;&lt;&lt;/font&gt; "<BR>End If<BR>For I=StartPage To EndPage<BR>If I=cPageNo Then<BR>Response.Write "&lt;b&gt;"&amp;I&amp;"&lt;/b&gt;"<BR>Else<BR>Response.Write "&lt;a class=""pageNavi"" href=""?PageNo=" &amp; I &amp; """&gt;" &amp; I &amp; "&lt;/a&gt;"<BR>End If<BR>If I&lt;&gt;tPageCount Then Response.Write "&amp;nbsp;"<BR>Next<BR>If EndPage&lt;tPageCount Then<BR>Response.Write " &lt;a class=""pageNavi"" href=""?PageNo=" &amp; (cPageNo NaviLength) &amp; """&gt;&gt;&gt;&lt;/a&gt;"<BR>Else<BR>Response.Write " &lt;font color=""#CCCCCC""&gt;&gt;&gt;&lt;/font&gt; "<BR>End If<BR>End Sub<BR>%&gt;



</P>

<P>  上面代码中:RPP:指定每页显示的记录条数。即每页显示几条数据。 </P>

<P>  NaviLength:显示的数字链接个数,即10就为1 2 3 ...10的连接个数。 </P>

<P>  若要显示所有连接的页(个)数,你可以设置为:NaviLength=tPageCount。 </P>

<P>  这时代码已经差不多了,但还要在显示的地方(如表格)中加点代码才行吧,(要不然怎么显示,呵~~~)如我们插入一个2行3列的表格。 </P>

<P>  1.将光标移在第一行第一列中,切换到代码中加入:&lt;%=(PageNo-1)*RPP I%&gt; </P>

<P>  这个代码是显示序号用的。 </P>

<P>  2.右边2个单元格(当然你自己可以根据需要分更多的列)就是为你要显示的记录了。请分别从绑定的记录集中选中你要显示的字段拖放在相应的单元格中,(也可以选中后再点右下角的“插入”按钮)。这里我们就先拖2个进来如“编号”和“公司名称”。分别到1行第2个单元格和1行第3个单元格中。 </P>
页: [1]
查看完整版本: 用Dreamweaver ASP实现分页技术的参考 (1)