|
蓝森林 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程序员都知道用这个哦,防注入最基本的用法之一。 |
|