|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。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>- <!--#includefile="conn.asp"--><P><%
- Setrs=Server.CreateObject("ADODB.Recordset")
- sql="Select*fromcnarticleorderbycn_iddesc"
- rs.Opensql,conn,1,1
- %><P><%
- page=request.querystring("page")page值为承受值
- rs.PageSize=2每页显现纪录数
- rs.AbsolutePage=Page显现以后页即是吸收的页数
- %><P><%
- Fori=1tors.PageSize使用fornext轮回顺次读出以后页的纪录
- ifrs.EOFthen
- ExitFor
- endif
- response.write("<br>文章内容是:"&rs("cn_content"))
- rs.MoveNext
- next%><%
- rs.close
- Setrs=Nothing
- conn.close
- setconn=nothing
- %>
复制代码 <P> HERE,你调试的条件就是数据库中的纪录绝对要年夜于4条,如许测试效果才分明;另有测试的办法就是在showit.asp前面增加?page=1大概?page=2等调试察看网页显现效果。<P> 实在,说究竟,显现数据库内容就是<P>- <%
- Fori=1tors.PageSize
- ifrs.EOFthen
- ExitFor
- endif
- response.write("<br>文章内容是:"&rs("cn_content"))
- rs.MoveNext
- next%>
复制代码 <P> 起的感化,但设想一下:该程序应当都只能显现出2条信息(一向稳定的2条信息)。但为何加上?page=1和?page=2会显现分歧的了局呢?……那相对就是rs.AbsolutePage的感化了。这个弄分明,信任分页的全体架构就有点头绪了。<P>- <!--#includefile="conn.asp"--><P><%
- Setrs=Server.CreateObject("ADODB.Recordset")
- sql="Select*fromcnarticle"
- rs.Opensql,conn,1,1
- %><P><%filepath=request.servervariables("path_info")%>
- <%
- page=request.querystring("page")page值为承受值
- rs.PageSize=2每页显现纪录数
- ifNotIsEmpty(page)then假如page已初始化...
- ifNotIsNumeric(page)then判别page值是不是为数字
- page=1
- else
- Page=cint(page)吸收page并化为数字型赋给page变量
- endif
- ifPage>rs.PageCountthen假如吸收的页数年夜于总页数
- rs.AbsolutePage=rs.PageCount设置以后显现页即是最初页
- elseifPage<=0then假如page小于即是0
- rs.AbsolutePage=1设置以后显现页即是第一页
- else
- rs.AbsolutePage=Page假如年夜于零,显现以后页即是吸收的页数
- endif
- else
- rs.AbsolutePage=1
- endif
- Page=rs.AbsolutePage%><P><%
- Fori=1tors.PageSize使用fornext轮回顺次读出以后页的纪录
- ifrs.EOFthen
- ExitFor
- endif
- response.write("文章题目是:"&rs("cn_title"))
- response.write("<br>文章作者是:"&rs("cn_author"))
- response.write("<br>文章到场工夫是:"&rs("cn_time"))
- response.write("<br>文章内容是:"&rs("cn_content"))
- response.write("<hr>")
- rs.MoveNext
- Next
- %><P><formaction="<%=filepath%>"method="get">
- <!--起首包管总页数不为1、不为0-->
- <%ifrs.pagecount1andrs.pagecount0then%>
- <!--假如以后页数年夜于1,不管什么时候都应显现首页和上一页的毗连-->
- <%ifpage>1then%>
- [<aHref="<%=filepath%>?Page=<%=1%>">首页</a>]
- [<aHref="<%=filepath%>?Page=<%=page-1%>">上一页</a>]
- <!--假如以后页数年夜于1而且小于总页面数时,显现出尾页和下一页的毗连-->
- <%ifpage<rs.pagecountthen%>
- [<aHref="<%=filepath%>?Page=<%=page+1%>">下一页</a>]
- [<aHref="<%=filepath%>?Page=<%=rs.PageCount%>">尾页</a>]
- <!--假如以后页数年夜于1而且仍年夜于或即是总页面数时,不显现出尾页和下一页的毗连-->
- <%else%>
- [下一页][尾页]
- <%endif%>
- <!--不然,以后页数不年夜于1,则只显现尾页和下一页的毗连-->
- <%else%>
- [首页][上一页]
- [<aHref="<%=filepath%>?Page=<%=page+1%>">下一页</a>]
- [<aHref="<%=filepath%>?Page=<%=rs.PageCount%>">尾页</a>]
- <%endif%>
- <!--终极,总页数若为1、为0则没有任何毗连-->
- <%else%>
- [首页][上一页][下一页][尾页]
- <%endif%>[页次:<fontcolor=red><b><%=page%></b></font>/<%=rs.PageCount%>]
- [共<%=rs.RecordCount%>篇<fontcolor=red><b><%=rs.PageSize%></b></font>篇/页]
- 转到<inputname="page"size=5value="<%=page%>">页
- <inputtype="submit"value="Enter">
- </form>
- <%
- rs.close
- Setrs=Nothing
- conn.close
- setconn=Nothing
- %>
复制代码 <P> 长长的分页代码,弄懂是真不简单,平台援用起来还必要修正也是对照贫苦。最初能做成一个函数,下次挪用起来就很便利了。<P>- <%
- functionpagination(pagecount,pagesize,page,resultcount)
- Dimquery,a,x,temp
- action="http://"&Request.ServerVariables("HTTP_HOST")_
- &Request.ServerVariables("SCRIPT_NAME")
- query=Split(Request.ServerVariables("QUERY_STRING"),"&")
- ForEachxInquery
- a=Split(x,"=")
- IfStrComp(a(0),"page",vbTextCompare)0Then
- temp=temp&a(0)&"="&a(1)&"&"
- EndIf
- Next
- Response.Write("<formmethod=getdocument.location="_
- &action&"?"&temp&"Page=+this.page.value;returnfalse;"">")
- ifpage<=1then
- Response.Write("[首页][上一页]")
- else
- Response.Write("[<ahref="&action&"?"&temp&"Page=1>_
- 首页</a>]")
- Response.Write("[<ahref="&action&"?"&temp&"Page="_
- &(Page-1)&">上一页</a>]")
- endififpage>=pagecountthen
- Response.Write("[下一页][尾页]")
- else
- Response.Write("[<ahref="&action&"?"&temp&"Page="_
- &(Page+1)&">下一页</a>]")
- Response.Write("[<ahref="&action&"?"&temp&"Page="_
- &pagecount&">尾页</a>]")
- endif
- Response.Write("[页次:<fontcolor=red>"&page&"</font>/"&pageCount)
- Response.Write("][共"&resultcount&"条<fontcolor=red>"&pagesize_
- &"</font>条/页]")
- Response.Write("转到"&"<inputname=pagesize=4value="&page&">"_
- &"页<inputtype=submitvalue=go>")
- Endfunction
- %>
复制代码 <P> 如要援用,则能够:<P>- <%callpagination(rs.PageCount,rs.pagesize,page,rs.RecordCount)%>
复制代码
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般 |
|