日期:2014-05-17  浏览次数:21187 次

求教ASP查询结果分页问题,参数怎么传递啊,在线等
我想做一个ASP查询子程序,但是按条件查询后显示分页的时候第一页正常,但是点下一页就出现问题了,不能显示了,要么就显示的是所有记录而不是我按条件查询的那个记录。总感觉参数传递的不对还是怎么回事,请那个高手帮我看一下。
代码所在页面为ip.asp,以下代码是其中的查询模块,

VBScript code


sub ipfind()
'IP查找\状态查看
call chk_login()
'权限判断
dim i,intPage,page,pre,last,filepath,sqlcx,cx_cxfs,sql
set rs = Server.CreateObject("ADODB.RecordSet")
cx_cxfs=request.Form("cxfs")
cx_cxnr=request.Form("cxnr")
select case cx_cxfs
    case 1        '所有数据
      sqlcx="select * from ip order by id,branch_name"
    case 2        '机构查询
       sqlcx="select * from ip where branch_name like '%"&request.Form("cxnr")&"%' order by id"
    case 3        '部门查询
      sqlcx="select * from ip where Departments like '%"&request.Form("cxnr")&"%' order by id"
    case 4        '使用者查询
      sqlcx="select * from ip where user_name like '%"&request.Form("cxnr")&"%' order by id"
    case 5        'IP查询
      sqlcx="select * from ip where ip_address like '%"&request.Form("cxnr")&"%' order by id"
    case 6        'MAC查询
      sqlcx="select * from ip where mac_address like '%"&request.Form("cxnr")&"%' order by id"
    case 7        '未分配IP查询
      'sqlcx="update ip set user_name=''"
      sqlcx="select * from ip where user_name='' and ip_address<>'' order by id desc"
end select

%>
<table width="743" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td><h3><img src="images/address.png" width="16" height="16"> IP地址信息
</h3></td>
    </tr>
    <tr>
      <td><div align="center">
        <form name="form2" method="post" action="ip.asp?action=ipfind">
          <label>
            查询方式:
            <select name="cxfs" id="cxfs">
              <option value="1">所有数据记录</option>
              <option value="2">按机构名查询</option>
              <option value="3">所属部门查询1.close:


------解决方案--------------------
intpage = rs.PageCount
<a href="ip.asp?page=<%=intpage -1%>">上页</a>
<a href=ip.asp?action=ipfind&page="<%=intpage +1%>">下页</a>
你自己看下,上页和下页访问的可能都是固定的一页.
当然出问题了.
还有你的rs.PageCount可能也出错了.

------解决方案--------------------
你用了Request.Form,而你在点上页、下页、首页、尾页的时候并不产生POST动作,所以Request.Form("cxfs")和Request.Form("cxnr")得到的值都是null,经过Select循环后sqlcx值还是空,当然出错了。

先把这两行:
cx_cxfs=request.Form("cxfs")
cx_cxnr=request.Form("cxnr")

改为:
cx_cxfs=request.QueryString("cxfs")
cx_cxnr=request.QueryString("cxnr")

然后在上页、下页、首页、尾页那些链接上的page=x后面都加上&cxfs=<%=cx_cxfs%>&cxnr=<%=cx_cxnr%>,再试一下……
------解决方案--------------------
把cx_cxfs=request.Form("cxfs")
cx_cxnr=request.Form("cxnr")
改为
cx_cxfs=request("cxfs")
cx_cxnr=request("cxnr")
而不是楼上说的

不然你表单查询的时候就没有数据了


然后在你这些<a href="ip.asp?page= <%=intpage -1%>">上页 </a>改为下面形式的

<a href="ip.asp?page= <%=intpage -1%>&cxfs=<%=cx_cxfs%>&cxnr=<%=cx_cxnr%>">上页 </a>