蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[asp]关于分页程序的小问题心得希望对大家有帮助

大家把下面两段代码比较一下.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("db1.mdb")
%>
<%
dim counter,ipage
ipage=1
if request.QueryString("ipage")<>"" then ipage=request.QueryString("ipage")
  %>
<%
set rs=server.CreateObject("ADODB.Recordset")
sql="select * from one"
rs.Open sql,conn,3,3
rs.pagesize=5
if not rs.eof then
rs.absolutepage=ipage
end if
%>
<% for i=0 to rs.pagesize
if not rs.eof then %>
<%= rs("ID") %><%= "<br>" %>
<% rs.movenext %>
<% end if
next %>
<% if ipage>1 then %>
<a href="test.asp?ipage=<%= ipage-1 %>">上一页</a>
<% else %>上一页
<% end if
if ipage<rs.pagecount then %>
<a href="test.asp?ipage=<%=ipage+1%>">下一页</a>
<% else %>下一页
<% end if  %>

========================================



<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("db1.mdb")
%>
<%
dim counter,ipage
ipage=1
if request.QueryString("ipage")<>"" then ipage=cint(request.QueryString("ipage"))
  %>
<%
set rs=server.CreateObject("ADODB.Recordset")
sql="select * from one"
rs.Open sql,conn,3,3
rs.pagesize=5
if not rs.eof then
rs.absolutepage=ipage
end if
%>
<% for i=0 to rs.pagesize
if not rs.eof then %>
<%= rs("ID") %><%= "<br>" %>
<% rs.movenext %>
<% end if
next %>
<% if ipage>1 then %>
<a href="test.asp?ipage=<%= ipage-1 %>">上一页</a>
<% else %>上一页
<% end if
if ipage<rs.pagecount then %>
<a href="test.asp?ipage=<%=ipage+1%>">下一页</a>
<% else %>下一页
<% end if  %>

细心的话你会发现读取外部参数时,第二段代码比第一段多了一个  cint()   这个cint()
作用可不小呀.我在我机器上试了半天都是第一段翻页的时候会要出现不翻的问题.而第二段由于加了个cint()而不会出现这问题,感兴趣的自己试试.

不过这到底是为什么我一直不懂如果你是大侠看了一定要回呀

CInt()的作用是将字符串转换成整数变量型态。
稍有点经验的ASP程序员都知道用这个哦,防注入最基本的用法之一。




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com