关于ASP分页显示(附有代码),一点迷雾?请指教

teams #php  2002-05-07 02:07:49
以下是我用DW UltraDev4和asp写的代码,能根据从静态页提交来的查询条件显示对应记录,并能翻页(每页显示5条记录),问题:如果从静态页(login.htm)提交要查询姓'李'的所有学生(设超过5个),在搜索结果页面(display.asp),前5条记录均是姓‘李’的学生,但点查看下一页面(从第6条开始)时,查询的不是姓'李'学生记录的第6条,而是整个表所有记录的第6条。 我想是不是发布的时候还要在web服务器上没置IIS相应的属性?

//login.htm
<html>
<form name="form1" method="post" action="display.asp">
姓名:
<input type="text" name="name" maxlength="10" size="16" >
<input type="submit" name="Submit" value="提交">
</form>
</html>

//文件名display.asp
<%@LANGUAGE="JAVASCRIPT"%>
<!--#include file="../Connections/con.asp" -->
<%
var rs__varname = "";
if(String(Request.form("name")) != "undefined") {
rs__varname = String(Request.form("name"));
}
%>
<%
var rs = Server.CreateObject("ADODB.Recordset");
rs.ActiveConnection = MM_cn_STRING;
rs.Source = "SELECT a.id bh, a.StudentID xh,b.name xm, a.Money hkje, a.Date hksj
FROM tb_PayOffLoan a inner join tb_studentbasic b on a.studentid=b.studentid W
HERE b.name like '%"+ rs__varname.replace(/'/g, "''") + "%'";
rs.CursorType = 3;
rs.CursorLocation = 2;
rs.LockType = 1;
rs.Open();
var rs_numRows = 0;
%>
<%
rs.pagesize=5;
%>
<%
if (rs.BOF && rs.EOF)
Response.Redirect("error3.htm");
%>
<%
var pages=Request("offset");
if (isNaN(pages))
pages=1;
if(pages<=0)
pages=1;
if(pages>rs.PageCount)
pages=rs.PageCount;
rs.AbsolutePage=pages;
%>
<html>
<head>
<title>学生情况</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="../IMG/MYCSS.CSS" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
共搜索: 共<%=rs.PageCount%>页,本页显示第<%=pages%>页
..................
<% for (i=0;i<rs.pagesize;i++) {
if(rs.EOF)
break;
%>
---------------要循环的部分------------
<%
rs.MoveNext();
}
%>
..................
<% if(pages!=1){ %>
<a href="xg_hdxj_adv.asp?offset=1">最前页</a> <a href="xg_hdxj_a
dv.asp?offset=<%=pages-1%>">上一页</a>
<% }
if(pages!=rs.PageCount) { %>
<a href="xg_hdxj_adv.asp?offset=<%=++pages%>">下一页</a> <a href
="xg_hdxj_adv.asp?offset=<%=rs.PageCount%>">最后一页</a>
<% } %>
</body>
</html>
<%
rs.Close();
%>

...全文
80 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
teams 2002-05-09
多谢各位相助,问题已得到解决。
回复
liuzxit 2002-05-07
我習慣這樣寫分頁處理﹐這樣可傳遞多個參數

<p align="center"><font color="#0000CC" size="2">第</font><font color="red" size="2"><%=page%></font><font color="#0000CC" size="2">/<%=rs_fact.pagecount%>頁</font>
<font size="2" color="#0000CC">
<%if page>1 then%>
[<u style="cursor:hand" onclick="document.form1.Page.value='1';submit()">第一頁</u>]
[<u style="cursor:hand" onclick="document.form1.Page.value=<%=page - 1%>;submit()">上一頁</u>]
<%end if%>
<%if page<rs_fact.PageCount then%>
[<u style="cursor:hand" onclick="document.form1.Page.value='<%= Page + 1 %>';submit()">下一頁</u>]
[<u style="cursor:hand" onclick="document.form1.Page.value='<%=rs_fact.PageCount%>';submit()">最後一頁</u>]
<%end if
rs_fact.close %>
輸入頁次:
<INPUT TYPE=TEXT Name=Page SIZE=3 style="font:9pt">  編號或簡稱
<input type="text" name="fact_no" size="6" maxlength="4" style="font:9pt" value=<%=s_fact_no%>>
<input type="submit" name="Submit" value="確定" style="font:9pt">
回复
wangfei2428 2002-05-07
您可以用session,cookies有的浏览器不允许储存,再则
response.("search")("tempname")=rs__varname
回复
teams 2002-05-07
多谢龙飞回复

我把从静态页获得的参数保存到缓存中
Response.Cookies("tempname")=rs__varname;
修改如下:
<a href="xg_hdxj_adv.asp?offset=<%=++pages%>&rs__varname=<%=Request.Cookies("tempname")%>">下一页</a>

是不是这句var rs__varname = ""代码又把rs__varname重置空了,还时不行。
回复
wangfei2428 2002-05-07
在分页的链接上多带一个参数rs__varname 把它的值也带上
<a href="xg_hdxj_adv.asp?offset=1rs_varname=...">最前页</a>
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2002-05-07 02:07
社区公告
暂无公告