分享
 
 
 

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

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

今天心情有点激动,想把"关于用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中再怎么修改一下就能达到呢?期待。。。。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有