查询翻页

lqin97 2003-10-15 11:10:14
<script language="javascript">
function putobject(obj_name,parentid)
{
eval("window.opener.document.goodsAdd." + parentid + ".value='" + obj_name + "'");
return window.close();
}
function putobject(obj_name1,city)
{
eval("window.opener.document.goodsAdd." + city + ".value='" + obj_name1 + "'");
return window.close();
}
</script>
<%


dim conn
set conn = server.CreateObject("adodb.connection")
conn.Open Application("connstr")
dim perpage,pagenum,totalpages,recordnum,sql

perpage=2

set rst = Server.CreateObject("adodb.recordset")

strsql= "select id,cs from cs Order By ID "
rst.Open strsql,conn,1,3

rst.PageSize=perpage


totalpages=rst.PageCount

if Request.ServerVariables("content_length")=0 then
pagenum=1
else
pagenum=CInt(Request.Form("pagenum"))
if Request.Form("submit1")="上一页" then
pagenum=pagenum-1
elseif Request.Form("submit2")="下一页" then
pagenum=pagenum+1
end if
if Request.Form("submit3")="首页" then
pagenum=1
end if
if Request.Form("submit4")="尾页" then
pagenum=totalpages
end if
end if

if not(rst.EOF) then
rst.AbsolutePage=pagenum
end if


%>
<html>

<BODY>
<BR>
<form action="" method=post name=queryform>
<table width="95%" border="0" cellspacing=0 cellpadding=0 bordercolor=#cccccc align=center>
<tr>
<td align=center>
<font size="2">城市编号</font> <input type=text size=10 name=cityNo

class=input1 style="WIDTH: 61px; HEIGHT: 19px" >
</td>
<td>
<font size="2">城市名称</font> <input type=text size=10 name=startcity

class=input1 style="WIDTH: 61px; HEIGHT: 19px" >   
<a href="#" onclick=javascript:queryform.submit();>查询</a>
</td>
</tr>
</table>
</form><center>
<table width=95% cellpadding=0 cellspacing=0>
<tr bgcolor=Black>
<td align=center>
<table border=1 bordercolor=white cellspacing=0 cellpadding=0 width=600>
<tr bordercolor=black bgcolor=LightSteelBlue>
<tr bgcolor=LightSteelBlue>
<td align=center width=12.5% >
<font size="2"> 城市编号</font></td>
<td align=center width=12.5%>
<font size="2">城市名称</td></font>
</tr>

<%
for recordnum=1 to rst.PageSize
%>

<td align=center width=150 bgColor=#ddffdd class=row>
<font size="2"><a href="#"

onclick="javascript:putobject('<%=trim(rst("cs"))%>','<%=Request.querystring("objectname")%>');"><%=trim(rst("id"))%>
</font></td>

<td align=center width=150 bgColor=#ddffdd class=row>
<font size="2">
<a href="#"

onclick="javascript:putobject('<%=trim(rst("cs"))%>','<%=Request.querystring("objectname")%>');"><%=trim(rst("cs"))%>
</font></a></td>

</tr>

<%
rst.MoveNext
if rst.EOF then
exit for
end if

next

rst.Close:conn.close
set rst=nothing:set conn=nothing
%>
</table>
</table>
<table>
<form action="<%=Request.ServerVariables("script_name")%>" method="post" id=form1 name=form1>
<input type="hidden" name="pagenum" value="<%=pagenum%>">

<%if pagenum<>1 then%>
<input type="submit" name="submit3" value="首页">
<%end if

if pagenum>1 then%>
<input type="submit" name="submit1" value="上一页">
<%end if

if pagenum<totalpages then%>
<input type="submit" name="submit2" value="下一页">
<%end if

if pagenum<>totalpages then%>
<input type="submit" name="submit4" value="尾页">
<%end if%>

</form>

<p><center>[第<font color="#CC0033"><%=pagenum%></font>页,共
<font color="#CC0033"><%=totalpages%></font>页]
</center>
</p>
</table>


</body>
</html>
没有查询的翻页已经可以了,可是查询后翻页无从下手,请大虾们帮忙改一下,谢谢了
...全文
61 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
avonqin 2003-10-15
  • 打赏
  • 举报
回复
###
<input type="hidden" name="city" value="<%=startcity%>">
==>
<input type="hidden" name="cityno" value="<%=request("cityno")%>">
<input type="hidden" name="startcity" value="<%=request("startcity")%>">

有点急了…………
avonqin 2003-10-15
  • 打赏
  • 举报
回复
#
strsql= "select id,cs from where id='"+ cityno+"' and cs='"+startcity +"'
==>
strsql= "select id,cs from where id='"&request("cityno")&"' and cs='"&request("startcity")&"'"

不好意思,上面写错了
avonqin 2003-10-15
  • 打赏
  • 举报
回复
#
strsql= "select id,cs from where id='"+ cityno+"' and cs='"+startcity +"'
==>
strsql= "select id,cs from where id='"+ <%=request("cityno")%>+"' and cs='"+<%request("startcity")%> +"'"

##
rst.Open strsql,conn,1,3
==>
rst.Open strsql,conn,1,1

###
<input type="hidden" name="city" value="<%=startcity%>">
==>
<input type="hidden" name="cityno" value="<%=cityno%>">
<input type="hidden" name="startcity" value="<%=startcity%>">

lqin97 2003-10-15
  • 打赏
  • 举报
回复
<script language="javascript">
function putobject(obj_name,parentid)
{
eval("window.opener.document.vehicle." + parentid + ".value='" + obj_name + "'");
return window.close();
}
function putobject(obj_name1,city)
{
eval("window.opener.document.vehicle." + city + ".value='" + obj_name1 + "'");
return window.close();
}
</script>
<%


dim conn
set conn = server.CreateObject("adodb.connection")
conn.Open Application("connstr")
dim perpage,pagenum,totalpages,recordnum,sql

perpage=2

set rst = Server.CreateObject("adodb.recordset")

strsql= "select id,cs from where id='"+ cityno+"' and cs='"+startcity +"'
rst.Open strsql,conn,1,3

rst.PageSize=perpage


totalpages=rst.PageCount

if Request.ServerVariables("content_length")=0 then
pagenum=1
else
pagenum=CInt(Request.Form("pagenum"))
if Request.Form("submit1")="上一页" then
pagenum=pagenum-1
elseif Request.Form("submit2")="下一页" then
pagenum=pagenum+1
end if
if Request.Form("submit3")="首页" then
pagenum=1
end if
if Request.Form("submit4")="尾页" then
pagenum=totalpages
end if
end if

if not(rst.EOF) then
rst.AbsolutePage=pagenum
end if


%>
<html>

<BODY>
<BR>
<form action="" method=post name=queryform>
<table width="95%" border="0" cellspacing=0 cellpadding=0 bordercolor=#cccccc align=center>
<tr>
<td align=center>
<font size="2">城市编号</font> <input type=text size=10 name=cityNo

class=input1 style="WIDTH: 61px; HEIGHT: 19px" >
</td>
<td>
<font size="2">城市名称</font> <input type=text size=10 name=startcity

class=input1 style="WIDTH: 61px; HEIGHT: 19px" >   
<a href="#" onclick=javascript:queryform.submit();>查询</a>
</td>
</tr>
</table>
</form><center>
<table width=95% cellpadding=0 cellspacing=0>
<tr bgcolor=Black>
<td align=center>
<table border=1 bordercolor=white cellspacing=0 cellpadding=0 width=600>
<tr bordercolor=black bgcolor=LightSteelBlue>
<tr bgcolor=LightSteelBlue>
<td align=center width=12.5% >
<font size="2"> 城市编号</font></td>
<td align=center width=12.5%>
<font size="2">城市名称</td></font>
</tr>

<%
for recordnum=1 to rst.PageSize
%>

<td align=center width=150 bgColor=#ddffdd class=row>
<font size="2"><a href="#"

onclick="javascript:putobject('<%=trim(rst("cs"))%>','<%=Request.querystring("objectname")%>');"><%=trim(rst("id"))%>
</font></td>

<td align=center width=150 bgColor=#ddffdd class=row>
<font size="2">
<a href="#"

onclick="javascript:putobject('<%=trim(rst("cs"))%>','<%=Request.querystring("objectname")%>');"><%=trim(rst("cs"))%>
</font></a></td>

</tr>

<%
rst.MoveNext
if rst.EOF then
exit for
end if

next

rst.Close:conn.close
set rst=nothing:set conn=nothing
%>
</table>
</table>
<table>
<form action="<%=Request.ServerVariables("script_name")%>" method="post" id=form1 name=form1>
<input type="hidden" name="pagenum" value="<%=pagenum%>">
<input type="hidden" name="city" value="<%=startcity%>">
<input type="hidden" name="id" value="<%=id%>">



<%if pagenum<>1 then%>
<input type="submit" name="submit3" value="首页">
<%end if

if pagenum>1 then%>
<input type="submit" name="submit1" value="上一页">
<%end if

if pagenum<totalpages then%>
<input type="submit" name="submit2" value="下一页">
<%end if

if pagenum<>totalpages then%>
<input type="submit" name="submit4" value="尾页">
<%end if%>

</form>

<p><center>[第<font color="#CC0033"><%=pagenum%></font>页,共
<font color="#CC0033"><%=totalpages%></font>页]
</center>
</p>
</table>


</body>
</html>
还是不行啊!我是个新手,帮帮忙,后天就要交了,拜托大家了
avonqin 2003-10-15
  • 打赏
  • 举报
回复
假如你要查询city="广州"
<input type=hidden name="city" value="<%=request("city")%>">

lqin97 2003-10-15
  • 打赏
  • 举报
回复
那value改写些什么呢?
avonqin 2003-10-15
  • 打赏
  • 举报
回复
在翻页的form内<input type=hidden name="……" value="……">
lqin97 2003-10-15
  • 打赏
  • 举报
回复
能不能在我的代码上修改一下,我不是很明白你们说的!
yllaji 2003-10-15
  • 打赏
  • 举报
回复

把翻页的那些参数都存储在 hidden变量里 提交到下一页
61 2003-10-15
  • 打赏
  • 举报
回复
<%
Sub TurnPage(ByRef Rs_tmp,PageSize) 'Rs_tmp 记录集 ; PageSize 每页显示的记录条数;
Dim TotalPage '总页数
Dim PageNo '当前显示的是第几页
Dim RecordCount '总记录条数
Rs_tmp.PageSize = PageSize
RecordCount = Rs_tmp.RecordCount
TotalPage = INT(RecordCount / PageSize * -1)*-1
PageNo = Request.QueryString ("PageNo")
'直接输入页数跳转;
If Request.Form("PageNo")<>"" Then PageNo = Request.Form("PageNo")
'如果没有选择第几页,则默认显示第一页;
If PageNo = "" then PageNo = 1
If RecordCount <> 0 then
Rs_tmp.AbsolutePage = PageNo
End If

'获取当前文件名,使得每次翻页都在当前页面进行;
Dim fileName,postion
fileName = Request.ServerVariables("script_name")
postion = InstrRev(fileName,"/")+1
'取得当前的文件名称,使翻页的链接指向当前文件;
fileName = Mid(fileName,postion)
%>
<table border=0 width='100%'>
<tr>
<td align=left> 总页数:<font color=#ff3333><%=TotalPage%></font>页
当前第<font color=#ff3333><%=PageNo%></font>页</td>
<td align="right">
<%If RecordCount = 0 or TotalPage = 1 Then
Response.Write "首页|前页|后页|末页"
Else%>
<a href="<%=fileName%>?PageNo=1">首页|</a>
<%If PageNo - 1 = 0 Then
Response.Write "前页|"
Else%>
<a href="<%=fileName%>?PageNo=<%=PageNo-1%>">前页|</a>
<%End If

If PageNo+1 > TotalPage Then
Response.Write "后页|"
Else%>
<a href="<%=fileName%>?PageNo=<%=PageNo+1%>">后页|</a>
<%End If%>

<a href="<%=fileName%>?PageNo=<%=TotalPage%>">末页</a>
<%End If%></td>
<td width=95>转到第
<%If TotalPage = 1 Then%>
<input type=text name=PageNo size=3 readonly disabled style="background:#d3d3d3">
<%Else%>
<input type=text name=PageNo size=3 value="" title=请输入页号,然后回车>
<%End If%>页
</td>
</tr>
</table>
<%End Sub%>

  当然,大家可以把翻页的链接做成图片按钮,这样的话也面就更加美观了。
  调用方法:
  1、在程序开始或要使用翻页的地方包含翻页模块文件;
  2、定义变量:RowCount,每页显示的记录条数
  3、调用翻页过程:Call TurnPage(记录集,RowCount)
  4、在Do While 循环输出记录集的条件中加上" RowCount > 0 " 条件
  5、在循环结束 "Loop前" 加上: RowCount = RowCount - 1

'-----------------------------------------------------
调用范例:
文件名:News.asp
<%
Dim Conn,Rs_News
Set Conn = server.CreateObject("ADODB.CONNECTION")
Conn.Open "cpm","cpm","cpm"

Dim Sql
Sql = "Select * from News"
Set Rs_News = Server.CreateObject("ADODB.RECORDSET")
Rs_News.Open Sql,Conn,1,3 '获取的记录集

'公共翻页模块开始%>
<!--#include file=../Public/TurnPage.asp-->
<%
Dim RowCount
RowCount = 10 '每页显示的记录条数
Call TurnPage(Rs_News,RowCount)
'公共翻页模块结束%>

<table width=100%>
<tr>
<td>新闻编号</td>
<td>新闻标题</td>
<td>发布日期</td>
<tr>
<%
If Not Rs_News.eof
Do while Not Rs_News.eof and RowCount>0
%>
<tr>
<td><%=Rs_News("ID")%></td>
<td><%=Rs_News("Name")%></td>
<td><%=Rs_News("Date")%></td>
<tr>
<%
RowCount = RowCount - 1
Rs_News.MoveNext
Loop
End If
%>
avonqin 2003-10-15
  • 打赏
  • 举报
回复
因为你用的是submit翻页,建议用 hidden 属性传递查询条件
popcode 2003-10-15
  • 打赏
  • 举报
回复
用session不好,这样一个用户查询就用一个session,如果查询的人一多那服务器资源将会大量的消耗
sundayfleet 2003-10-15
  • 打赏
  • 举报
回复
应该是一样的,
定义一个currentPage变量
IF Request("CurrentPage")="" THEN
rs.AbsolutePage=1
Else
rs.AbsolutePage=CLng(Request("CurrentPage"))
End If
arhui007 2003-10-15
  • 打赏
  • 举报
回复
通过中转页面

把SQL语句用session传递到分页这里

其余没有变化
分页显示的技巧实例:显示任一页数据
以下例程用于显示某一页的全部数据:
Sub ShowOnePage( rs, Page )
'rs为打开的数记录集,Page为要显示的页码
Response.Write "<CENTER><TABLE BORDER=1>"
Response.Write "<TR BGCOLOR=#00FFFF>"
Response.WRITE "<TD>序号</TD>"
For i=0 to rs.Fields.Count-1
'输出表头名称
Response.WRITE "<TD>" & rs.Fields(i).Name & "</TD>"
Next
Response.Write "</TR>"

rs.AbsolutePage = Page '设置当前页号
For iPage = 1 To rs.PageSize '输出当前页的所有记录
Response.Write "<TR>"
RecNo = (Page - 1) * rs.PageSize + iPage '计算输出的记录序号
Response.Write "<TD>" & RecNo & "</TD>"
For i=0 to rs.Fields.Count-1 '输出每一字段
Response.WRITE "<TD>" & rs.Fields(i).Value & "</TD>"
Next
Response.Write "</TR>"
rs.MoveNext
If rs.EOF Then Exit For
Next
Response.Write "</TABLE></CENTER>"
End Sub

四、 提供更具浏览性的网页
上网者往往查询多达几十页资料数据,从用户角度考虑,应该提供更直观方便的页面,不妨提供以下功能以方便上网者:

第一页 上一页 下一页 最后一页 输入页号: 总页数:

ASP程序实现如下:
'此处打开数据库联接及数据表对象
<%
If Request("Page") = "" Then Page=10
Page = CLng(Request("Page")) ' CLng 不可省略,用于将页码转换为长整型
If Page < 1 Then Page = 1
If Page > rs.PageCount Then Page = rs.PageCount
%>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>分页浏览数据库的技巧</title>
</head>

<body bgcolor="#FFFFFF">
<h2 align="center">利用SQL命令筛选数据记录</h2>

<hr>
<%
ShowOnePage rs, Page
%>
<hr>

<form action="当前文件.asp" method="GET">
<%
If Page <> 1 Then
Response.Write "<A HREF=PageS23.asp?Page=1>第一页</A>"
Response.Write "<A HREF=PageS23.asp?Page=" & (Page-1) & ">上一页</A>"
End If
If Page <> rs.PageCount Then
Response.Write "<A HREF=PageS23.asp?Page=" & (Page+1) & ">下一页</A>"
Response.Write "<A HREF=PageS23.asp?Page=" & rs.PageCount & ">最后一页</A>"
End If
%> <p align="right">输入页数:<input type="text" size="3"
name="Page"> 页数:<font color="#FF0000"><%=Page%>/<%=rs.PageCount%></font> </p>
</form>
</body>
</html>
samillboy 2003-10-15
  • 打赏
  • 举报
回复
一样的,只是检索记录的时候加上你的条件。其他基本不便
popcode 2003-10-15
  • 打赏
  • 举报
回复
在翻页的时候把查询的变量值也传过去就可以了
1蓝天1 2003-10-15
  • 打赏
  • 举报
回复
up
lqin97 2003-10-15
  • 打赏
  • 举报
回复
avonqin(李文) ,哦,谢谢你了
99percent 2003-10-15
  • 打赏
  • 举报
回复
怎先可以解决少用session的问题呢?
avonqin 2003-10-15
  • 打赏
  • 举报
回复
rst.Open strsql,conn,1,3
==>rst.Open strsql,conn,1,1

就这样了,其他问题你自己试试吧:)

你对pagenum的付值也错了!
加载更多回复(31)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧