仓酷云

标题: ASP编程:ADO组件之分页程序 [打印本页]

作者: 山那边是海    时间: 2015-1-16 22:25
标题: ASP编程:ADO组件之分页程序
对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。应当来讲,学会了怎样拔出纪录,怎样显现纪录,那末如今复杂的完全的文章体系、旧事体系和留言体系不成成绩。那接着上面的成绩就是:跟着信息内容的不段增添,独自经由过程一张页面显现一切信息是不可也是很不睬性的。以是,办理的举措就是接纳分页手艺。<P>  1,rs.RecordCount
  很明显,RecordCount就是用来显现数据库表中一共几笔记录的,也能够抽象地说表中一共有几行。常常用在分页中就是一共有N篇文章等总计的信息显现。<P>  2,rs.PageSize
  rs.PageSize也就是一页的巨细,也就暗示一张ASP页能够显现纪录的条数。值是本人界说的,好比常常看到的每页显现N篇文章之类的信息。<P>  3,rs.AbsolutePage和rs.pagecount
  说到分页,必定不克不及不提到rs.AbsolutePage。纪录集的AbsolutePage属性最次要的感化就是决意着以后显现的是第几页。它的值是有根据的,指定了rs.PageSize,那末rs.pagecount的信息值就是rs.RecordCount和rs.PageSize整除了局。好比:总信息纪录rs.RecordCount共20条,每页显现条数rs.PageSize设为5条,那末页数rs.pagecount数就是20/5=4页次,而rs.AbsolutePage则就只能是第1页,第2页……第4页。<P>  说到如今,弄个详细程序来调试一下。持续对showit.asp举行修正以下:<P>
  1. <!--#includefile="conn.asp"--><P><%
  2. Setrs=Server.CreateObject("ADODB.Recordset")
  3. sql="Select*fromcnarticleorderbycn_iddesc"
  4. rs.Opensql,conn,1,1
  5. %><P><%
  6. page=request.querystring("page")page值为承受值
  7. rs.PageSize=2每页显现纪录数
  8. rs.AbsolutePage=Page显现以后页即是吸收的页数
  9. %><P><%
  10. Fori=1tors.PageSize使用fornext轮回顺次读出以后页的纪录
  11. ifrs.EOFthen
  12. ExitFor
  13. endif
  14. response.write("<br>文章内容是:"&rs("cn_content"))
  15. rs.MoveNext
  16. next%><%
  17. rs.close
  18. Setrs=Nothing
  19. conn.close
  20. setconn=nothing
  21. %>
复制代码
<P>  HERE,你调试的条件就是数据库中的纪录绝对要年夜于4条,如许测试效果才分明;另有测试的办法就是在showit.asp前面增加?page=1大概?page=2等调试察看网页显现效果。<P>  实在,说究竟,显现数据库内容就是<P>
  1. <%
  2. Fori=1tors.PageSize
  3. ifrs.EOFthen
  4. ExitFor
  5. endif
  6. response.write("<br>文章内容是:"&rs("cn_content"))
  7. rs.MoveNext
  8. next%>
复制代码
<P>  起的感化,但设想一下:该程序应当都只能显现出2条信息(一向稳定的2条信息)。但为何加上?page=1和?page=2会显现分歧的了局呢?……那相对就是rs.AbsolutePage的感化了。这个弄分明,信任分页的全体架构就有点头绪了。<P>
  1. <!--#includefile="conn.asp"--><P><%
  2. Setrs=Server.CreateObject("ADODB.Recordset")
  3. sql="Select*fromcnarticle"
  4. rs.Opensql,conn,1,1
  5. %><P><%filepath=request.servervariables("path_info")%>
  6. <%
  7. page=request.querystring("page")page值为承受值
  8. rs.PageSize=2每页显现纪录数
  9. ifNotIsEmpty(page)then假如page已初始化...
  10. ifNotIsNumeric(page)then判别page值是不是为数字
  11. page=1
  12. else
  13. Page=cint(page)吸收page并化为数字型赋给page变量
  14. endif
  15. ifPage>rs.PageCountthen假如吸收的页数年夜于总页数
  16. rs.AbsolutePage=rs.PageCount设置以后显现页即是最初页
  17. elseifPage<=0then假如page小于即是0
  18. rs.AbsolutePage=1设置以后显现页即是第一页
  19. else
  20. rs.AbsolutePage=Page假如年夜于零,显现以后页即是吸收的页数
  21. endif
  22. else
  23. rs.AbsolutePage=1
  24. endif
  25. Page=rs.AbsolutePage%><P><%
  26. Fori=1tors.PageSize使用fornext轮回顺次读出以后页的纪录
  27. ifrs.EOFthen
  28. ExitFor
  29. endif
  30. response.write("文章题目是:"&rs("cn_title"))
  31. response.write("<br>文章作者是:"&rs("cn_author"))
  32. response.write("<br>文章到场工夫是:"&rs("cn_time"))
  33. response.write("<br>文章内容是:"&rs("cn_content"))
  34. response.write("<hr>")
  35. rs.MoveNext
  36. Next
  37. %><P><formaction="<%=filepath%>"method="get">
  38. <!--起首包管总页数不为1、不为0-->
  39. <%ifrs.pagecount1andrs.pagecount0then%>
  40. <!--假如以后页数年夜于1,不管什么时候都应显现首页和上一页的毗连-->
  41. <%ifpage>1then%>
  42. [<aHref="<%=filepath%>?Page=<%=1%>">首页</a>]
  43. [<aHref="<%=filepath%>?Page=<%=page-1%>">上一页</a>]
  44. <!--假如以后页数年夜于1而且小于总页面数时,显现出尾页和下一页的毗连-->
  45. <%ifpage<rs.pagecountthen%>
  46. [<aHref="<%=filepath%>?Page=<%=page+1%>">下一页</a>]
  47. [<aHref="<%=filepath%>?Page=<%=rs.PageCount%>">尾页</a>]
  48. <!--假如以后页数年夜于1而且仍年夜于或即是总页面数时,不显现出尾页和下一页的毗连-->
  49. <%else%>
  50. [下一页][尾页]
  51. <%endif%>
  52. <!--不然,以后页数不年夜于1,则只显现尾页和下一页的毗连-->
  53. <%else%>
  54. [首页][上一页]
  55. [<aHref="<%=filepath%>?Page=<%=page+1%>">下一页</a>]
  56. [<aHref="<%=filepath%>?Page=<%=rs.PageCount%>">尾页</a>]
  57. <%endif%>
  58. <!--终极,总页数若为1、为0则没有任何毗连-->
  59. <%else%>
  60. [首页][上一页][下一页][尾页]
  61. <%endif%>[页次:<fontcolor=red><b><%=page%></b></font>/<%=rs.PageCount%>]
  62. [共<%=rs.RecordCount%>篇<fontcolor=red><b><%=rs.PageSize%></b></font>篇/页]
  63. 转到<inputname="page"size=5value="<%=page%>">页
  64. <inputtype="submit"value="Enter">
  65. </form>
  66. <%
  67. rs.close
  68. Setrs=Nothing
  69. conn.close
  70. setconn=Nothing
  71. %>
复制代码
<P>  长长的分页代码,弄懂是真不简单,平台援用起来还必要修正也是对照贫苦。最初能做成一个函数,下次挪用起来就很便利了。<P>
  1. <%
  2. functionpagination(pagecount,pagesize,page,resultcount)
  3. Dimquery,a,x,temp
  4. action="http://"&Request.ServerVariables("HTTP_HOST")_
  5. &Request.ServerVariables("SCRIPT_NAME")
  6. query=Split(Request.ServerVariables("QUERY_STRING"),"&")
  7. ForEachxInquery
  8. a=Split(x,"=")
  9. IfStrComp(a(0),"page",vbTextCompare)0Then
  10. temp=temp&a(0)&"="&a(1)&"&"
  11. EndIf
  12. Next
  13. Response.Write("<formmethod=getdocument.location="_
  14. &action&"?"&temp&"Page=+this.page.value;returnfalse;"">")
  15. ifpage<=1then
  16. Response.Write("[首页][上一页]")
  17. else
  18. Response.Write("[<ahref="&action&"?"&temp&"Page=1>_
  19. 首页</a>]")
  20. Response.Write("[<ahref="&action&"?"&temp&"Page="_
  21. &(Page-1)&">上一页</a>]")
  22. endififpage>=pagecountthen
  23. Response.Write("[下一页][尾页]")
  24. else
  25. Response.Write("[<ahref="&action&"?"&temp&"Page="_
  26. &(Page+1)&">下一页</a>]")
  27. Response.Write("[<ahref="&action&"?"&temp&"Page="_
  28. &pagecount&">尾页</a>]")
  29. endif
  30. Response.Write("[页次:<fontcolor=red>"&page&"</font>/"&pageCount)
  31. Response.Write("][共"&resultcount&"条<fontcolor=red>"&pagesize_
  32. &"</font>条/页]")
  33. Response.Write("转到"&"<inputname=pagesize=4value="&page&">"_
  34. &"页<inputtype=submitvalue=go>")
  35. Endfunction
  36. %>
复制代码
<P>  如要援用,则能够:<P>
  1. <%callpagination(rs.PageCount,rs.pagesize,page,rs.RecordCount)%>
复制代码

asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
作者: 柔情似水    时间: 2015-1-19 11:43
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
作者: 金色的骷髅    时间: 2015-1-24 23:54
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
作者: 小女巫    时间: 2015-2-8 01:10
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: 简单生活    时间: 2015-2-23 20:45
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者: 若天明    时间: 2015-3-7 10:25
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: 海妖    时间: 2015-3-14 22:39
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
作者: 若相依    时间: 2015-3-21 15:08
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2