参考:用Dreamweaver+ASP实现网页分页

2016-02-19 21:18 11 1 收藏

图老师小编精心整理的参考:用Dreamweaver+ASP实现网页分页希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - Web开发 】

  今天心情有点激动,想把"关于用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  
%  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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

%  
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 PageNoRecordset1.PageCount Then PageNo=Recordset1.PageCount  
Recordset1.AbsolutePage=PageNo  
Sub ShowPageInfo(tPageCount,cPageNo)  
Response.Write "第"&cPageNo&"页[共"&tPageCount&"页]"  
End Sub  
Sub ShowPageNavi(tPageCount,cPageNo)  
If cPageNo1 Then cPageNo=1  
If tPageCount1 Then tPageCount=1  
If cPageNotPageCount Then cPageNo=tPageCount  
Dim NaviLength  
NaviLength=10 ’NaviLength:显示的数字链接个数  
Dim I,StartPage,EndPage  
StartPage=(cPageNoNaviLength)*NaviLength+1  
If (cPageNo Mod NaviLength)=0 Then StartPage=StartPage-NaviLength  
EndPage=StartPage+NaviLength-1  
If EndPagetPageCount Then EndPage=tPageCount  
If StartPage1 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 ItPageCount Then Response.Write " "  
Next  
If EndPagetPageCount 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的连接个数。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  若要显示所有连接的页(个)数,你可以设置为: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 PageNoRecordset1.PageCount Then PageNo=Recordset1.PageCount  
Recordset1.AbsolutePage=PageNo  
Sub ShowPageInfo(tPageCount,cPageNo)  
Response.Write "第"&cPageNo&"页[共"&tPageCount&"页]"  
End Sub  
Sub ShowPageNavi(tPageCount,cPageNo)  
If cPageNo1 Then cPageNo=1  
If tPageCount1 Then tPageCount=1  
If cPageNotPageCount Then cPageNo=tPageCount  
Dim NaviLength  
NaviLength=20 ’NaviLength:显示的数字链接个数  
Dim I,StartPage,EndPage  
StartPage=(cPageNoNaviLength)*NaviLength+1  
If (cPageNo Mod NaviLength)=0 Then StartPage=StartPage-NaviLength  
EndPage=StartPage+NaviLength-1  
If EndPagetPageCount Then EndPage=tPageCount  
If StartPage1 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 ItPageCount Then Response.Write " "  
Next  
If EndPagetPageCount 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.tulaoshi.com/n/20160219/1625857.html

延伸阅读
标签: ASP
  随着网络技术的发展和Internet的普及,Browser/Server在软件开发中已成为主流,笔者在开发一个ERP系统时,就采用了B/S软件模式,具体架构为SQL Server+IIS+IE网页采用的是Active Server Page文件。由于系统涉及大量的数据操作和查询,若纯粹采用ASP脚本语言编写势必造成效率低下,为了提高系统的整体效率和安全性,笔者采用了AS...
标签: ASP
  大家都知道,ASP有着强大的数据库操作能力,这与她能方便的调用ActiveX对象是密不可分的。下面我给大家介绍一种ASP利用ADO对象实现对数据库记录分页显示的方法。以下代码均在WIN98+PWS+MSACCESS环境下通过。 在这里我主要通过ADO对象集中的Recordset对象来实现各种数据库操作的。先介绍几个用于分页显示的Recordset属性。 ...
标签: ASP
  作者:胡舜良 本 人 在 维 护 公 司 内 部 网 站 时 碰 到 一 个 实 际 问 题 — —MIS 主 管 要 求 将 一 些 技 术 文 件 放 在 网 页 上, 且 只 能 让MIS 的 员 工 浏 览。 这 就 涉 及 到 如 何 对 网 页 保 密 的 问 题。 最 初 我 借 助Frontpage 和Vbscript 设 计 了 一 种 方 案, 链...
标签: ASP
  在维护公司内部网站时碰到一个实际问题——MIS主管要求将一些技术文件放在网页上,且只能让MIS 的员工浏览。这就涉及到如何对网页保密的问题。 最初我借助Frontpage和Vbscript设计了一种方案,链接MIS技术页(此处预设为actpwdrst.htm)之前,先 链接actpwd.htm输入名称和密码(此处名称和密码都预设 为“mis”),只有正确输入后,...
标签: ASP
  一.关于参数传递。假如表中有46条记录,然后我们在地址栏中敲入http.//localhost/display.asp?line=10&page=2(假设这是正确的路径)肯定浏览器将给我们显示第二页的十条记录。但是如果在地址栏中只敲入http.//localhost/display.asp,浏览器却给我们一个出错信息。如何解决呢?我们必须在读取这些参数时加一个判断,如果参数是空...

经验教程

107

收藏

47
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部