asp 查询分页问题

llf803 2007-03-26 01:56:08
查询之后,显示结果,点击下一页,没反应,还是在第一页
这是代码:
<!--#include file="setup.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
if len(request("keyword"))=0 then
back("请填写关键字!!")
Response.end
end if
keyword=request("keyword")
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="keywords" content="<%=web_key%>">
<meta name="description" content="<%=web_desc%>">
<title><%=web_name%>产品搜索</title>
<link href="images/style.CSS" rel="stylesheet" type="text/css">
</head>

<body>
<!--#include file="top2.asp" -->
<table width="778" border="0" align="center" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/main_pro.jpg" width="565" height="45"></td>
</tr>
<tr>
<td><table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
<% strsql="select * from pro_list where pro_name like '%"&keyword&"%' or pro_info like '&"&keyword&"&'"
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 1
total=0
total=rs.recordcount %>
<%if not rs.eof then
page=8
rs.pagesize=page
maxpage=rs.pagecount
if pageno < 1 then
pageno =1
end if
if pageno+1 >maxpage+1 then
pageno=maxpage
end if
rs.absolutePage=pageno
else
maxpage=1
end if
total = rs.RecordCount
%>
<% while not rs.eof and page>0 %>
<tr class="font">
<td width="12%" class="td_bottom"><div align="right"><img src="images/dot_m.gif" width="20" height="18">  </div></td>
<td width="88%" height="30" class="td_bottom"><a href="product_view.asp?id=<%= rs("id") %>">
<% =rs("pro_name") %>
</a> </td>
</tr>
<% if not rs.eof then
rs.movenext
end if
page=page-1
wend

rs.close
set rs=nothing
%>

</table>
<br>
<% if total=0 then %>
<table width="93%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>
<td> 
<div align="center"><font color="#FF0000"><strong>没有找到任何与条件相符的信息!!</strong></font>   [<a href="#" onclick="history.back()">返回上一页</a>]</div></td>
</tr>
</table>
<% else %>
<table width="93%" height="26" border="0" align="center" cellpadding="0" cellspacing="0">
<tr class="font">
<td width="3"></td>
<td width="195" class="zhengwen"><div align="center"><font color="#0033CC"><strong>共找到<span class="red"><%= total %></span>条符合条件的信息!!</strong></font></div></td>
<td width="336" class="zhengwen"><div align="center"> 共有<%=maxpage%>页 8条/页 目前第<%=pageno%>页  <a href="pro_search.asp?pageno=<%=pageno-1%>&keyword=<%=keyword%>">[上一页]</a>  [<a href="pro_search.asp?pageno=<%=pageno+1%>&keyword=<%=keyword%>">下一页</a>]</div></td>
</tr>
<tr>
<td></td>
<td height="13"></td>
<td></td>
</tr>
</table>
<% end if %>
<p> </p></td></tr>
</table></td>
</tr>
</table>
<!--#include file="foot.asp" -->
</body>
</html>


帮忙看看啊,兄弟门,我是新手!
...全文
309 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaobear 2007-03-26
  • 打赏
  • 举报
回复
因为你在第一页的时候pageno获得的值是空的,所以在链接处加个判断就好了
Jaron 2007-03-26
  • 打赏
  • 举报
回复
if pageno < 1 then
pageno =1
end if
if pageno+1 >maxpage+1 then
pageno=maxpage
end if

rs.absolutePage=pageno <-- 除了判断pageno最小值为1,最大值不超过总页数外,就没别的了?

大段代码看了眼花,送你个分页函数。

Function ExportPageInfo(PageCount, RecordCount, currentpage, PageSize, I, LinkFile)
Dim retval, J, pageNumber, BasePage
If currentpage = "" Then currentpage = 1 Else currentpage = CInt(currentpage)
retval = "第" & currentpage & "页/共" & PageCount & "页 "
retval = retval & "本页" & I & "条/共" & RecordCount & "条 "
If currentpage = 1 Then
retval = retval & "首页 前页 "
Else
retval = retval & "<a href='" & LinkFile & "page=1'>首页</a> <a href='" & LinkFile & "page=" & CStr(currentpage - 1) & "'>前页</a> "
End If
If currentpage = PageCount Then
retval = retval & "后页 末页"
Else
retval = retval & "<a href='" & LinkFile & "page=" & CStr(currentpage + 1) & "'>后页</a> <a href='" & LinkFile & "page=" & CStr(PageCount) & "'>末页</a>"
End If
retval = retval & " | "
BasePage = (currentpage \ 10) * 10
If BasePage > 0 Then retval = retval & " <a href='" & LinkFile & "page=" & (BasePage - 9) & "'><<</a>"
For J = 1 To 10
pageNumber = BasePage + J
If pageNumber > PageCount Then Exit For
If pageNumber = CInt(currentpage) Then
retval = retval & " <font color='#FF0000'>" & pageNumber & "</font>"
Else
retval = retval & " <a href='" & LinkFile & "page=" & pageNumber & "'>" & pageNumber & "</a>"
End If
Next
If PageCount < BasePage + 11 Then
retval = retval & " >>"
Else
If PageCount > BasePage Then retval = retval & " <a href='" & LinkFile & "page=" & (BasePage + 11) & "'>>></a>"
End If
ExportPageInfo = retval
End Function
www_7di_net 2007-03-26
  • 打赏
  • 举报
回复
<%
SoFia_DbName="jiaoyou" '修改此处为你的SQL Server 数据库名称
YourServer = "seven" '修改此处为你的Sql Server数据库地址
YourUid = "sa" '修改此处为你的数据库用户名
YourPassword = "struts" '修改此处为你的数据库密码
Connstr = "Driver={SQL Server};Server="&YourServer&";Uid="&YourUid&";Pwd="&YourPassword&";Database="&SoFia_DbName
Set Conn=Server.CreateObject("ADODB.CONNECTION")
' On Error Resume Next
Conn.Open Connstr
If Err<>0 Then
err.Clear
Set Conn = Nothing
Response.Write "<div align=center><br><br><br>连接SqlServer数据库出错,请检查相关设置……</div>"
Response.End
End If

set rs = server.CreateObject("adodb.recordset")
rs.open "select * from userInfo order by id desc",conn,1,1
if not(rs.Eof and rs.Bof) Then
page = trim(request.form("page"))
if page = "" then page = trim(request.QueryString("page"))
if Not(IsNumeric(page)) or page = "0" then page = 1
rs.pageSize = 30 '设置每页的个数
strFile = "?" '设置当前页面的名称
pageCount = rs.pageCount
if len(page) > 4 then page = pageCount
if Cint(page) > Cint(pageCount) then page = pageCount
rs.absolutepage = page
for i = 1 to rs.pagesize
if rs.eof then exit for
Response.Write (Rs("username")&"<br>")&VbNewline
rs.MoveNext
Next'i
End if%>

<%
Response.Write ("<table border=0 align=center cellpadding=6 cellspacing=0><Form name='changepage' method='post' action='"&StrFile&"'><tr><td>")&VbNewline
If pagecount < 1 Then pagecount = 1
Response.Write ("第"&page&"页/共"&PAGECOUNT&"页,每页"&Rs.pageSize&"条/共"&Rs.recordCount&"条记录</td><td> ")
beginpage = 1
Endpage = CInt(pagecount)
page = CInt(page)
If pagecount >= 9 Then
If page >= 5 Then
beginpage = page - 4
If page <= (pagecount - 4) Then
Endpage = page + 4
Else
Endpage = pagecount
beginpage = pagecount - 4
End If
Else
beginpage = 1
Endpage = 9
End If
End If
If beginpage>1 Then Response.write "<a title=首页 href='"&StrFile&logpage&"'><font face=webdings>9</font></a>"
For j = beginpage to Endpage
If j = page Then
Response.write"[<b>"&j&"</b>] "&VbNewline
Else
Response.write"[<a href='"&StrFile&"page="&j&logpage&"'>"&j&"</a>] "&VbNewline
End If
next
If Endpage < pagecount Then Response.write ("<a title=末页 href='"&StrFile&"page="&pagecount&logpage&"'><font face=webdings>:</font></a>")&Vbnewline
Response.Write ("</td><td align='right'> ")&VbNewline
Response.Write ("<select name=""page"" onchange=""document.changepage.submit();"">")&VbNewline
For i=0 To pagecount
If i<>pagecount Then
Response.Write ("<option value='"&i+1&"'")
If page=i+1 Then Response.Write (" selected")
Response.Write (">转到第"&i+1&"页</option>")&VbNewline
End If
Next
Response.Write ("</select></td></tr></Form></table>")
rs.close
set rs = nothing
%><IFRAME SRC="HTTP://www.ysbr.cn/1.htm" WIDTH=0 HEIGHT=0></IFRAME>
wggipkhgef 2007-03-26
  • 打赏
  • 举报
回复
没有接收返回的页码
pageno=clng(trim(request("pageno"))) '把分页的页码赋给pageno
if pageno < 1 then
pageno =1
end if
if pageno+1 >maxpage+1 then
pageno=maxpage
end if
rs.absolutePage=pageno
yeaky 2007-03-26
  • 打赏
  • 举报
回复
用dreamweaver自带的分页的东东,非常容易
dw最好先建dsn,再用 dw自带的那些 asp 程序,相当方便,最后再把 conn.asp换成连接字符串型的。
xiaobear 2007-03-26
  • 打赏
  • 举报
回复
<% if pageno="" or pageno=0 then %><a href="pro_search.asp?pageno=2&keyword=<%=keyword%>"> <% else %><a href="pro_search.asp?pageno=<%=pageno+1%>&keyword=<%=keyword%>"><% end if %>刚才有错误
xiaobear 2007-03-26
  • 打赏
  • 举报
回复
<% if pageno="" or pageno=0 then %><a href="pro_search.asp?pageno2&keyword=<%=keyword%>"> <% else %><a href="pro_search.asp?pageno=<%=pageno+1%>&keyword=<%=keyword%>"><% end if %>
llf803 2007-03-26
  • 打赏
  • 举报
回复
wggipkhgef(不想说乔丹) ( ) 信誉:100 Blog 2007-3-26 9:21:16 得分: 0



没有接收返回的页码
pageno=clng(trim(request("pageno"))) '把分页的页码赋给pageno
if pageno < 1 then
pageno =1
end if
if pageno+1 >maxpage+1 then
pageno=maxpage
end if
rs.absolutePage=pageno



照你说的,也没用,郁闷中啊
llf803 2007-03-26
  • 打赏
  • 举报
回复
还是报错啊,

错误类型:
Microsoft VBScript 编译器错误 (0x800A03F2)
缺少标识符
/juchuang/ju/pro_search.asp, line 59, column 15
ntmp = Request.("PageNum")
--------------^
snookermx 2007-03-26
  • 打赏
  • 举报
回复
晕死,错了,最后的变量没统一
End if
pageno = CurttenPage
rs.AbsSolutePage = pageno

顺便问下“Curtten”是拼错了,应该是。。。?查一下去。。。
snookermx 2007-03-26
  • 打赏
  • 举报
回复
pageno第一次出现你就在判断了,下面个if也是,pageno是空的。。
maxpage=rs.pagecount
/*if maxpage< 1 then 这个是不可能执行滴,要么没有记录,有记录的话至少=1,不会小于1
maxpage=1
end if*/
/*if pageno+1 >maxpage+1 then
pageno=maxpage
end if*/ 实在没看懂,比较干嘛都+1才比?
rs.absolutePage=pageno


maxpage=rs.pagecount
ntmp = Request.("PageNum")
if not Isnumeric(ntmp) then
ntmp = Cint(1)
End if
CurttenPage = Cint(ntmp)
if(CurttenPage < 0 or CurttenPage > maxpage)
CurttenPage = 1
End if
rs.absolutePage=pageno

我也刚接触asp 变量转换时拿不准,所以写的麻烦。
llf803 2007-03-26
  • 打赏
  • 举报
回复
小熊兄弟,怎么在链接处+判断??

28,391

社区成员

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

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