济南特岗教师招聘公告:请教实现分页显示中的输入页数问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 05:30:24
<%@ language=Jscript %>
<!--#include file="adojavas.inc" -->
<%
var Page;
conn = Server.CreateObject("ADODB.Connection");
conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("data.mdb"));
rs = Server.CreateObject("ADODB.Recordset");
sql = "select * from customers";
rs.Open(sql, conn, adOpenStatic); rs.PageSize = 10;
if (0 == Request("Page").count)
{
Page = 1;
}
else
{
Page = parseInt(Request("Page"))
}
if (Page < 1)
{
Page = 1;
}
if (Page > rs.PageCount)
{
Page = rs.PageCount;
}
rs.AbsolutePage = Page;
%>
<HTML>
<body bgcolor="beige">
<center>
<table border="4" bordercolor="orange">
<tr>
<td>订单号</td>
<td>所购宝贝编号</td>
<td>所购宝贝名称</td>
<td>所购日期</td>
</tr>
<%
var i;
for (i=1;i<=rs.PageSize;i++) {
if (!rs.EOF)
{
%>

<tr>
<td><%=(rs.Fields.Item("订单号").Value)%></td>
<td><%=(rs.Fields.Item("所购宝贝编号").Value)%></td>
<td><%=(rs.Fields.Item("所购宝贝名称").Value)%></td>
<td><%=(rs.Fields.Item("所购日期").Value)%></td>
</tr>
<%
rs.MoveNext();
}
}
%>
</table>
</CENTER>
<div ALIGN="right">
<hr>
<form Action="temp1.asp" Method="GET">
<%
if (!(1==Page))
{
Response.Write("<A HREF=temp1.asp?Page=1>第一页</A>");
Response.Write("<A HREF=temp1.asp?Page=" + (Page-1) + ">上一页</A>");
}
if (!(rs.PageCount==Page))
{
Response.Write("<A HREF=temp1.asp?Page=" + (Page+1) + ">下一页</A>");
Response.Write("<A HREF=temp1.asp?Page=" + rs.PageCount + ">最后一页</A>");
}
%>
<!--以下为新增代码:-->
<p>输入页数:<input TYPE="TEXT" Name="Page" SIZE="3"> <input type="submit" value="Go" Name="Page">页数:<font COLOR="Red"><%=Page%>/<%=rs.PageCount%></font>
</p>
</form>
</BODY>
</HTML>
问题:当我只把光标停留在“输入页数”文本框里然后按“Go”就会出现错误类型:
Provider (0x8002000A)
超出当前范围。
/mysite/temp1.asp, 第 26 行
应当如何解决呢?
不是名字重复,就是把提交按钮去掉也同样出现这一问题。
下面是这个页面的链接:http://idc.9e3.com/web/v23shop/temp1.asp

<p>输入页数:<input TYPE="TEXT" Name="Page" SIZE="3"> <input type="submit" value="Go" Name="Page">页数:<font COLOR="Red"><%=Page%>/<%=rs.PageCount%></font>
是不是text 和wubmit 名字重复了????

你要对你输入的页数进行判断才行的!当页数输入不合法的时候,你可以让他跳转到第一页!