|
主题: 常见问题之分页显示
|
5D荣誉版主
职务:普通成员
等级:1
金币:10.0
发贴:271
|
#12002/12/17 15:17:57
这个问题不是第一次问到了,虽然简单,但兄弟不才,做了个例子 看看,也许对大家有点帮助 <% pagesize = 15 '定义每页的记录数 set conn = server.CreateObject("adodb.connection") connstr = 数据库连接字符串 conn.Open connstr set rs = server.CreateObject("adodb.recordset") sql = "select * from [column]" rs.Open sql,conn,1,1 %> page <%if rs.EOF and rs.BOF then%> <%else%> <%for i=0 to rs.Fields.count-1%> <%=rs.Fields(i).Name%> | <%next%> <% if request("page")="" then curpage=1 else curpage=cint(request("page")) end if rs.pagesize=pagesize rs.absolutepage=curpage for i = 1 to rs.pagesize %> <%for j=0 to rs.Fields.count-1%><%=rs(j)%> | <%next%> <% rs.MoveNext if rs.eof then i = i + 1 exit for end if next %> > <% response.write "" response.write "第 " + cstr(curpage) + "页/总 " + cstr(rs.pagecount) + "页 " response.write "本页 " + cstr(i-1) + "条/总 " + cstr(rs.recordcount) + "条 " if curpage = 1 then response.write "首页 前页 " else response.write " 首页 前页 " end if if curpage = rs.pagecount then response.write "后页 末页" else response.write " 后页 末页" end if %> |
<%end if%>
|
FlowJZH
职务:普通成员
等级:1
金币:0.0
发贴:22
|
#22002/12/17 16:22:16
以上程序缺点:
1.关于页码的显示,调用过多的后台asp程序去处理,没有太大的不要,其实前台的javascript语言中的location.href完全可以胜任。
2.对于某些本来就有request.querystring的函数,比如这个显示帖子的当前页面"http://www.5dmedia.com/bbs/NewsDetail.asp?id=604727",里面有"id=604727"之类的已有字符串,那么用这个程序将无法正确生成下一页的url,除非编程的人对每个这样的例子都手动加上特定的代码,但是这样很不方便。
|
5D荣誉版主
职务:普通成员
等级:1
金币:10.0
发贴:271
|
#32002/12/17 17:15:40
诶,是啊,你说的有些道理,但我写这个不是为了别的呵. 主要是为了那些对分页显示感到困惑的同志提供一种方法而已,当然不能适用于那种含有查询参数的情况了,难道我还得用 for i=0 to Request.QueryString.Count querystr = querystr & request.querystring.item(i) next 然后在每个换页的链接处加上这个参数来增加程序的通用性?
|
FlowJZH
职务:普通成员
等级:1
金币:0.0
发贴:22
|
#42002/12/17 18:25:55
3个问题 1.以上代码似乎还少一些东西因为里面看不到任何的"="字符 2.request.querystring.item(0)会产生数组索引越界错误 3.以上代码同样是用asp程序在服务器端实现了本可以在客户端实现的功能。 下面的JS代码可供参考 var strQueryString = window.location.search;
strQueryString = strQueryString.replace(/[\?&]*page=\d+/ig,"");
strQueryString = strQueryString.replace(/^\?/,"&"); 以上代码用正则表达式在客户端直接产生没有"page=xx"在其中的QueryString,小生在这里只是抛砖引玉,告诉大家window.location对象的一些使用方法,而分页代码的总体原则小生以为应该做到能不在服务器端实现的尽量不要在服务器端实现。
|
今晚在线
职务:普通成员
等级:3
金币:1.0
发贴:761
|
#52002/12/18 1:19:23
对于新手够用了……
|
learnasp
职务:普通成员
等级:1
金币:0.0
发贴:1
|
#62002/12/23 14:49:30
显示页面!!!!!<%set rs=server.createobject("adodb.recordset") sql="select * from title " rs.open sql ,adocon,1,1 %> <% rs.pagesize=5 %> <% if not isempty(request("page")) then page=cint(request("page")) end if %> <% if page>rs.pagecount then rs.absolutepage=rs.pagecount else if page<=0 then rs.absolutepage=1 else rs.absolutepage=page end if end if b=rs.absolutepage %> <% i=rs.pagesize do while not rs.eof and i>0%> <%=rs("id")%> | <%=rs("title")%> | <%=rs("author")%> | <%=rs("time")%> | <% i=i-1 rs.movenext loop %>
共有<%=rs.pagecount%>页 每页有<%=rs.pagesize %>条记录 <%=rs.absolutepage-1%>/<%=rs.pagecount %> | <% if b <> 1 then %> 首页 | 上一页 | <% end if %> <% if b <> rs.pagecount then %> 下一页 | 尾页 | | <% end if %>
|
<% rs.close set rs=nothing adocon.close set adocon=nothing %>
|