在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
为什么我写ASP分页教程要提到AJAX呢,因为我们要多练习一下编程过程中,结构化的重要性. 再加上很多朋友对分页感到很高深,所以一直都不敢去碰他,要么就用别人写好的组件,要么就是改改别人的东西.特别是.net,我深有感触,假如要快速开发一个项目,我想.net是一个非常优秀的平台.但是,因为他的严重控件化,反而是新手接触不到编程的思想,完全找不到编程的感觉,仿佛就象在搭积木.有时候还是要练习一下底层一点的东西,这样个人的技术能力才会得到提高.我可不想做只会用.NET的组装工人. 好了,下面给出ASP分页的源代码给大家,都进行了详细的注释,一般都可以看的懂. 因为这个是教程一,所以就从最简单的开始,我直接使用的AbsolutePage来定义当前页面,所以没有用诸如MoveFirst这种比较复杂的游标方式,而且分页也是用的下拉选择框,等下个教程我再写一下进阶分页方法,给出前进十页,后退十页,只显示目前所在的十页分组的方法. ASP虽然是一个过时的东西,不过因为他可以使用JS来写,所以我感觉要做一个项目DEMO的时候,使用ASP要比.NET或者JAVA更方便,因为他不用安装体积庞大的环境.简简单单配置一下就可以了.真要大规模项目开发的话,我肯定还是会用.NET或JAVA的,因为这样就会涉及到效率问题了. 复制代码 代码如下: <%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%> <% //定义数据库连接语句 var connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +Server.MapPath("database/vote.mdb"); //建立一个rs数据库查询 var rs = Server.CreateObject("ADODB.Recordset") //rs连接方式 rs.ActiveConnection = connstring //rs查询语句(按照用户提交时间倒序查询) rs.Source = "select * from users order by usetime DESC" //定义数据库查询模式 rs.CursorType = 3 rs.CursorLocation = 3 rs.LockType = 1 //定义每页显示数据数量 rs.PageSize = 10 //打开数据库连接 rs.Open() //定义数据库纪录总数,分页总数,URL路径 var counts,pagecos,thisUrl counts = rs.RecordCount pagecos = rs.PageCount thisUrl = Request.ServerVariables("URL") //如果游标在表中就执行 if(!rs.EOF || !rs.BOF){ //如果url的page参数不为空就执行 if(Request("page").Count != 0){ //定义默认链接字符串,第一页,尾页,上页,下页 //URL的page值(指定的当前页),当前页,当前每页显示数据数量 var defaltStr,firstpage,lastpage,prepage,nextpage,pages,nowPage,nowSize defaltStr = '<a href="'+thisUrl+'?page=' firstpage = defaltStr+'1">首页</a>' lastpage = defaltStr+pagecos+'">尾页</a>' pages = Request("page") //如果处于第一页 //首页,上一页不为链接 if(pages <= 1){ rs.AbsolutePage = 1; firstpage = '首页' prepage = '上一页' nextpage = defaltStr+'2">下一页</a>' //如果处于最后一页 //尾页,下一页不为链接 }else if(pages >= pagecos){ rs.AbsolutePage = pagecos; prepage = defaltStr+(pagecos-1)+'">上一页</a>' lastpage = '尾页' nextpage = '下一页' }else{ rs.AbsolutePage = pages prepage = defaltStr+(Number(pages)-1)+'">上一页</a>' nextpage = defaltStr+(Number(pages)+1)+'">下一页</a>' } } nowPage = rs.AbsolutePage nowSize = rs.PageSize //如果处于最后一页,并且数据显示数量与每页显示数据数量不相等时 //因为最后一页不可能每次都刚好与每页显示数据数量相等 //所以需要定义一个不相等的方法 if(nowPage >= pagecos && (pagecos*rs.PageSize)%counts != 0){ nowSize = counts%rs.PageSize } %> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="userinfo"> <tr> <td align="center"> <!--显示首页,上一页 --> <%=firstpage%> <%=prepage%> 跳转到第 <select onchange="location.href='<%=thisUrl%>?page='+this.value"> <% //分页依靠循环显示 for(var num=1; num<=pagecos; num++){ if(nowPage == num){ %> <option value="<%=num%>" selected="selected"><%=num%></option> <% }else{ %> <option value="<%=num%>"><%=num%></option> <% } } %> </select> 页 <!--显示下一页,尾页 --> <%=nextpage%> <%=lastpage%> <!--显示当前页数,总页数,总记录数,每页显示数据数量 --> 共 <%=nowPage%> / <%=pagecos%> 页 <%=counts%> / <%=rs.PageSize%> 条记录 </td> </tr> <% //内容依靠循环显示 for(var i=1;i<=nowSize;i++){ %> <tr> <td><span>用户IP:</span><%=rs("usip")%></td> </tr> <tr> <td><span>建议:</span><%=rs("us1")%></td> </tr> <tr> <td><span>提交时间:</span><%=rs("usetime")%></td> </tr> <% //数据库游标向移向下一条记录 rs.MoveNext(); } %> </table> <% //如果数据库游标不在数据库列中 }else{ Response.Write("没有用户信息!") } //关闭数据库连接 rs.Close() %> |
请发表评论