ASP实现分页技术的代码参考

2017-01-13 郑州网站建设  
今天郑州网站建设小编心情天择文化有点激动,想把"关于用DW+ASP实现分页技术的参考"分享给用DW+ASP做网页的朋友们.去掉只有"第一页,前一页,下一页,最后一页"的痛苦    
  此效果最后的显示是:第N页[共*页] <<1 2 3 4 5 6 7 8 9 10 >>。    
  用DW+ASP做网页时,在绑定记录集后,代码页里马上出现以下代码:    
 
<%     
Dim Recordset1     
Dim Recordset1_numRows     
 
Set Recordset1 = Server.CreateObject("ADODB.Recordset")     
Recordset1.ActiveConnection = MM_数据库名_STRING     
Recordset1.Source = "SELECT * FROM 表名"     
Recordset1.CursorType = 0     
Recordset1.CursorLocation = 2     
Recordset1.LockType = 1     
Recordset1.Open()     
 
Recordset1_numRows = 0     
%>    
  现在我们要来对代码做点修改,请在上面代码中修改为如下的代码:    
 
<%     
Dim I     
Dim RPP     
Dim PageNo     
I=1     
RPP=50     
PageNo=CInt(Request("PageNo"))     
’上面即是新插入的,     
Dim Recordset1     
Dim Recordset1_numRows     
Set Recordset1 = Server.CreateObject("ADODB.Recordset")     
Recordset1.ActiveConnection = MM_数据库名_STRING     
Recordset1.Source = "SELECT * FROM 数据库名"     
Recordset1.CursorType = 1 ’将上面代码的0改为1.     
Recordset1.CursorLocation = 2     
Recordset1.LockType = 1     
Recordset1.Open()     
Recordset1_numRows = 0 ’再在此行的下一行开始加入如下代码:     
Recordset1.PageSize=RPP     
If PageNo<=0 Then PageNo=1     
If PageNo>Recordset1.PageCount Then PageNo=Recordset1.PageCount     
Recordset1.AbsolutePage=PageNo     
Sub ShowPageInfo(tPageCount,cPageNo)     
Response.Write "第"&cPageNo&"页[共"&tPageCount&"页]"     
End Sub     
Sub ShowPageNavi(tPageCount,cPageNo)      
If cPageNo<1 Then cPageNo=1     
If tPageCount<1 Then tPageCount=1     
If cPageNo>tPageCount Then cPageNo=tPageCount      
Dim NaviLength     
NaviLength=10 ’NaviLength:显示的数字链接个数      
Dim I,StartPage,EndPage      
StartPage=(cPageNo\NaviLength)*NaviLength+1     
If (cPageNo Mod NaviLength)=0 Then StartPage=StartPage-NaviLength      
EndPage=StartPage+NaviLength-1     
If EndPage>tPageCount Then EndPage=tPageCount      
If StartPage>1 Then     
Response.Write "<a class=""pageNavi"" href=""?PageNo=" & (cPageNo-NaviLength) & """><<</a> "     
Else     
Response.Write "<font color=""#CCCCCC""><<</font> "     
End If     
For I=StartPage To EndPage     
If I=cPageNo Then     
Response.Write "<b>"&I&"</b>"     
Else     
Response.Write "<a class=""pageNavi"" href=""?PageNo=" & I & """>" & I & "</a>"     
End If     
If I<>tPageCount Then Response.Write "&nbsp;"     
Next     
If EndPage<tPageCount Then     
Response.Write " <a class=""pageNavi"" href=""?PageNo=" & (cPageNo+NaviLength) & """>>></a>"     
Else     
Response.Write " <font color=""#CCCCCC"">>></font> "     
End If     
End Sub     
%>    
  上面代码中:RPP:指定每页显示的记录条数。即每页显示几条数据。    
  NaviLength:显示的数字链接个数,即10就为1 2 3 ...10的连接个数。    
  若要显示所有连接的页(个)数,你可以设置为:NaviLength=tPageCount。    
  这时代码已经差不多了,但还要在显示的地方(如表格)中加点代码才行吧,(要不然怎么显示,呵~~~)如我们插入一个2行3列的表格。    
  1.将光标移在第一行第一列中,切换到代码中加入:<%=(PageNo-1)*RPP+I%>    
  这个代码是显示序号用的。    
  2.右边2个单元格(当然你自己可以根据需要分更多的列)就是为你要显示的记录了。请分别从绑定的记录集中选中你要显示的字段拖放在相应的单元格中,(也可以选中后再点右下角的“插入”按钮)。这里我们就先拖2个进来如“编号”和“公司名称”。分别到1行第2个单元格和1行第3个单元格中。    
  3.这个是个关键的,请将光标移到第一行任意单元格中,再来点选窗口底下的<tr>,这时你看看代码,<tr>....</tr>就被选中了。这时请在<tr>....</tr>的前面插入如下代码:    
<%     
If Recordset1.EOF OR Recordset1.BOF Then     
Else     
For I=1 To RPP     
%>再在<tr>....</tr>之后插入如下代码:     
<%     
Recordset1.MoveNext     
If Recordset1.EOF OR Recordset1.BOF Then Exit For     
Next     
End If     
%>    
  4.这是就完成表格的第一行的工作。下来也是关键,即分页的连接。光标在第2行第一个单元格中时在代码窗口插入:    
 
<% showPageInfo Recordset1.PageCount,PageNo %>    
  的代码。右边的2个单元格将其合并,在代码中插入:    
 
<% showPageNavi Recordset1.PageCount,PageNo %>    
  的代码。   
  5.大功告成!这时感快预览一下吧。。。。    
  表格的全部代码如下:    
<table width="710" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#333333">     
<%     
If Recordset1.EOF OR Recordset1.BOF Then     
Else     
For I=1 To RPP     
%>     
<tr bgcolor="#FFFFFF">     
<td width="30" align="center"><%=(PageNo-1)*RPP+I%></td>     
<td><%=(Recordset1.Fields.Item("编号").Value)%></td>     
<td><%=(Recordset1.Fields.Item("公司名称").Value)%></td>     
</tr>     
<%     
Recordset1.MoveNext     
If Recordset1.EOF OR Recordset1.BOF Then Exit For     
Next     
End If     
%>     
<tr bgcolor="#FFFFFF">     
<td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="2">     
<tr bgcolor="#006699" class="w12">     
<td width="121" align="center"><% showPageInfo Recordset1.PageCount,PageNo %>     
</td>     
<td width="573" align="center">      
<% showPageNavi Recordset1.PageCount,PageNo %>     
</td>     
</tr>     
</table></td>     
</tr>     
</table>    
  这时你去点应用程序中的“服务器行为”中的记录集,在代码中就显示为一下代码,也是我的原代码:    
 
<%     
Dim I     
Dim RPP’RPP:指定每页显示的记录条数,     
Dim PageNo     
I=1     
RPP=50     
PageNo=CInt(Request("PageNo"))     
Dim Recordset1     
Dim Recordset1_numRows     
Set Recordset1 = Server.CreateObject("ADODB.Recordset")     
Recordset1.ActiveConnection = MM_数据库名_STRING     
Recordset1.Source = "SELECT * FROM 表名 ORDER BY 编号 ASC"     
Recordset1.CursorType = 1     
Recordset1.CursorLocation = 2     
Recordset1.LockType = 1     
Recordset1.Open()     
 
Recordset1_numRows = 0     
Recordset1.PageSize=RPP     
If PageNo<=0 Then PageNo=1     
If PageNo>Recordset1.PageCount Then PageNo=Recordset1.PageCount     
Recordset1.AbsolutePage=PageNo     
 
Sub ShowPageInfo(tPageCount,cPageNo)     
Response.Write "第"&cPageNo&"页[共"&tPageCount&"页]"     
End Sub     
 
Sub ShowPageNavi(tPageCount,cPageNo)      
If cPageNo<1 Then cPageNo=1     
If tPageCount<1 Then tPageCount=1     
If cPageNo>tPageCount Then cPageNo=tPageCount      
Dim NaviLength     
NaviLength=20 ’NaviLength:显示的数字链接个数      
Dim I,StartPage,EndPage      
StartPage=(cPageNo\NaviLength)*NaviLength+1     
If (cPageNo Mod NaviLength)=0 Then StartPage=StartPage-NaviLength      
EndPage=StartPage+NaviLength-1     
If EndPage>tPageCount Then EndPage=tPageCount      
If StartPage>1 Then     
Response.Write "<a class=""pageNavi"" href=""?PageNo=" & (cPageNo-NaviLength) & """><<</a> "     
Else     
Response.Write "<font color=""#CCCCCC""><<</font> "     
End If     
For I=StartPage To EndPage     
If I=cPageNo Then     
Response.Write "<b>"&I&"</b>"     
Else     
Response.Write "<a class=""pageNavi"" href=""?PageNo=" & I & """>" & I & "</a>"     
End If     
If I<>tPageCount Then Response.Write "&nbsp;"     
Next     
If EndPage<tPageCount Then     
Response.Write " <a class=""pageNavi"" href=""?PageNo=" & (cPageNo+NaviLength) & """>>></a>"     
Else     
Response.Write " <font color=""#CCCCCC"">>></font> "     
End If     
End Sub     
 
%>    
  不过有一个缺点就是:如当你想找99页时点>>9次,要是有一个输入框,输入99后回车就到99就完美了。不知在DW+ASP中再怎么修改一下就能达到呢?期待。。

河南郑州做网站首选天择文化,我们专注郑州网站建设网站设计网站制作与开发,是中原地区专业的郑州网络公司,多年来我们一直努力,服务客户数百家,欢迎您的咨询。
本文链接:郑州网络公司http://www.tzchb.com/tech/227.html转载请标明出处,谢谢合作!
标签:
  • 代码
  • 数据库
  • 技术
  • asp
  • DW
  • 分页