透彻掌握ASP分页技术
近段时间看了一些论坛上面关于分页的ASP程序依然有许多的关注者 但里面只有代码 没有详细的解释 对于初学者来说 这样总是得不到真正的掌握 此次我将针对分页技术进行详解 让大家来理解ASP分页 好了 一起来对分页程序来次透彻的了解吧!
首先 来看看效果 !
看看功能 分页程序首先读取每页预置的记录条数 在此是 条 其它将在下页中显示 同时提示当前页数 总页数 总记录数 当显示的页数为第一页时 首页 上一页 链接失效 当显示的页数为最后页时 下一页 尾页 链接失效
接下来 以实例的方式告诉大家怎么一步步的做出这种分页效果
首先 数据库中字段record_info存在于info表中(实例下载中有数据库) 先链接数据库并将一个记录集打开 以下代码
<%Set conn=Server CreateObject( Adodb Connection )connstr= provider=Microsoft JET OLEDB ;Data Source= &Server MapPath( data mdb )conn open connstrSet rs=Server CreateObject( Adodb Recordset )sql= Select * from info rs open sql conn %>
这段代码不详解 相信初入门的都会 具体的解释可以看看《手把手教你用ASP做留言本》教程
接下来这是分页中比较重要的部分 了了三行而已
<%rs pagesize= curpage=Request QueryString( curpage )rs absolutepage=curpage%>
第二句 rs pagesize= 这个什么意思呢?它就是在Recordset对象中的一个内置属性 它的作用是指定每页的记录条数 设置为 时 每 条记录放在一起成一页 比如实例 *** 有 条记录 那么 使用rs pagesize分页后 这 条记录将分成 页进行显示
第三句 这里主要是用于翻页的功能 将URL的post参数curpage传递给curpage变量 这个curpage将得到浏览者想要到达的页数 (运行一下实例就会明白)
第四句 rs absolutepage 这个也是个内置的属性 它代表的意思就是将curpage变量的数值指定为当前页
现在开始可以让记录循环显示了
<%for i= to rs pagesizeif rs eof thenexit forend if%><%=rs( record_info )%><br><%rs movenextnext%>
第二句 利用for循环在每页显示rs pagesize属性中指定的记录数
第三 四 五句 这句意思是当最后一页达不到指定记录时就退出循环 以免出错
第七句 绑定从数据库取出的record_info字段 就是叫这字段内的记录循环显示的
第九句 用rs movenext方法将rs记录集往下移一条记录
第十句 for循环语句
另外可以用<%=curpage%>读出当前页次 用<%=rs pagecount%>读出总页数 用<%=rs recordcount%>读出总记录数 例如 当前第<%=curpage%>页 共有<%=rs pagecount%>页 共有 <%=rs recordcount%>条记录
在显示首页 上页 下页 尾页功能上 采用了if else 语句 比较好懂
<%if curpage= then%>首页<%else%><a >首页</a><%end if%>
<%if curpage= then%>上一页<%else%><a ?curpage=<%=curpage %> >上一页</a><%end if%>
<%if rs pagecount<curpage+ then%>下一页<%else%><a ?curpage=<%=curpage+ %> >下一页</a><%end if%>
<%if rs pagecount<curpage+ then%>尾页<%else%><a ?curpage=<%=rs pagecount%> >尾页</a><%end if%>
首页 这个使用当前页是否为第一页时判别 如果当前为第一页(也就是首页) 那么显示首页两字 没有链接 否则提供直接跳转到首页的链接 上一页 当前为第一页时 链接失效 反过来 链接到当前面的上一页 这里使用 <%=curpage %> 就是用当前的页数减去 得到上一页 下一页 这里需要使用rs pagecount这个属性来比较 假如总页数小于当前页数加 的值 那表明这就是第后一页 链接将失效 否则链接到下一页 尾页 和下一页的功能一样判定出是最后页时链接失效 否则将当前页指定为rs pagecount(总页数) lishixinzhi/Article/program/net/201311/11613