老问题:多条件组合查询后分页错误,用Session保存SQL查询语句然后传到下一页。
我有一个多条件组合查询,条件最多有20多个,其中还有几个时间段的查询。所以用GET方法传值会很麻烦,想用Session保存SQL查询语句,然后再传到下一页。和之前很多人遇到的问题一样,我们条件查询后不能点下一页,点下一页是全部数据的下一页,而不是带条件查询的下一页(嗯,这个,应该说清楚了吧?)
我有两个页面,一个是Search.asp用表单来输入查询条件, SearchEnd.asp接收表单的查询条件并显示查询结果。在论坛里搜索到https://bbs.bccn.net/thread-164379-1-1.html,看后有点启发,不过还是搞不定!他最后问题解决了,但是不知道这个response.redirect怎么用呀?写在什么地方呢?
下面是SearchEnd.asp部分代码:
程序代码:
'接收查询条件, Dim cat cat=0 ChaXunM=Trim(Replace(Request.Form("ChaXunM"),"'","")) BaoGaoXH=Trim(Replace(Request.Form("BaoGaoXH"),"'","")) '此处为省略200字... ... '============================================================================================================================= 'If条件查询语句 sql="select * from Reports where " if ChaXunM<>"" then sql=sql&" ChaXunM = '"&ChaXunM&"' " cat=1 end if if BaoGaoXH<>"" and cat=1 then sql=sql&" and BaoGaoXH = '"&BaoGaoXH&"' " cat=1 elseif BaoGaoXH<>"" then sql=sql&" BaoGaoXH = '"&BaoGaoXH&"' " cat=1 end if '此处省略500字... ... '============================================================================================================================== '判断查询条件是否为空 If cat=0 then sql="select * from Reports order by id desc" ElseIf cat=1 then sql=sql&"order by id desc" End If ’============================================================================================================================== '下面抄了https://bbs.bccn.net/thread-164379-1-1.html代码 page = request("Page") ''如果page是空,说明是一次新查询 if page = "" Or IsNull(page) Then session("searcheSql") = Sql ''新查询时把带有查询条件的SQL存放到session中 elseif session("searcheSql") = "" then Sql = session("searcheSql") ''翻页时从SESSION中读取带有查询条件的SQL end if If Page = "" Or Not IsNumeric(Page) Then Page = 1 End If '=============================================================================================================================== '我自己的分页代码 set rs=server.createobject("adodb.recordset") rs.open sql,conn,1,1 onepage=20 rs.pagesize=onepage pages=rs.pagecount pump=onepage*(page-1) '此处省略200字... ... '============================================================================================================================== ’这里是要显示的查询结果...... '============================================================================================================================= '关键之处终于到了:我的页面跳转链接 if page<6 then firstnum=1 lastnum=6 if lastnum>pages then lastnum=pages else firstnum=page-3 lastnum=page+3 if lastnum>pages then lastnum=pages end if '下面是显示 1 2 3 4 5 6 ...的链接 <a href="?action=search&page=1"><</a> <%for i=firstnum to lastnum%> <a href="?&page=<%=i%>"><%=i%></a> <%next%> <a href="?h&page=<%=pages%>"> ></a>
感谢你有耐心看完,感谢帮助!
[ 本帖最后由 towering 于 2012-8-22 18:22 编辑 ]