首页 | CG下载 | CG信息 | CG教程 | 三维作品 | CG理论 | CG加油站 | 设计鉴赏 | Flash | 专题 | 论坛 | 博客 | 导航 | 高级搜索
RSS
热门: 素材  作品  设计  照片  创意  3dsmax  优秀作品  Vray  艺术  欣赏

用Dreamweaver和ASP实现分页技术的参考

来源:不详 作者:佚名 时间:2007-07-07 点击:

  今天心情有点激动,想把\"关于用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中再怎么修改一下就能达到呢?期待。。。。
上一篇:个性化表单五技巧
下一篇:用Dreamweaver8搞定web标准
关键字:迅雷 快车 Baidu Dreamweaver ASP 实现 分页 技术
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
图腾CG联盟免责声明:本网站转载纯粹出于为网民传递更多信息之目的,无任何商业目的。如本网站转载稿件涉及版权等问题,请作者速来函admincg3000@163.com联系,在此,我们首先向您表示诚挚的歉意,并将尽快予以改正。本网站上发表的内容只代表作者本人之观点,本网站只出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。
赞助广告