CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

请教关于查询和分页的问题

楼主ruralboy(乡下男孩)2005-06-03 08:56:54 在 Web 开发 / ASP 提问

<%  
  if   request("keyword")   =   empty   then         '判断是否为空  
    Response.Redirect   "dtxx_zh.asp"  
  else  
    dim   word,   wc  
    wc   =   "%"  
    word   =   trim(Request.Form("keyword"))  
    sqlstr   =   "select   *   from   sheet1   where   "  
    if   len(word)   >   0   then  
          sqlstr   =   sqlstr   &   "   title   like   '"   &   wc   &   word   &   wc   &   "'"    
    end   if  
    sqlstr   =   sqlstr   &   "   order   by   number   DESC"    
  end   if  
     
  Set   Example   =   New   paginate                         '新建一个对像实例,Example可以为任意非关  
  键字名称  
  Example.strconn   =   MM_rec1_STRING         '数据库连接语句  
  Example.strsql   =   sqlstr  
  Example.persize   =   20                                     '分页大小设定  
  Example.targets   =   "query_result.asp"                     '目标文件,我这里设定为相对路径  
   
  Example.connect                                               '打开数据库连接  
  %>  
  第一页显示是正常的,但是按下一页的时候就直接跳回“dtxx_zh.asp"页面,因此我估计  
  是   request("keyword")   =   empty   then      
    Response.Redirect   "dtxx_zh.asp"  
  这里的问题,那么怎样保存这个"keyword"值而使它在下一页开始的时候不为空?  
   
  谢谢帮忙,如有表达的不是很清楚的地方,请指出  
  问题点数:50、回复次数:9Top

1 楼qiangtian(tq)回复于 2005-06-03 08:59:21 得分 5

加一个隐藏域,input   type=hiddenTop

2 楼poolnet()回复于 2005-06-03 09:02:51 得分 15

估计没有传递过去    
  word   =   trim(Request.Form("keyword"))   -->>word   =   trim(Request("keyword"))  
   
  Example.targets   =   "query_result.asp?keyword="   &   server.urlencode(word)Top

3 楼everywhen(那天,我醉了!)回复于 2005-06-03 09:03:46 得分 5

在你的“下一页”链接上传递页号的参数Top

4 楼dama2003(以后要开始加班了………………)回复于 2005-06-03 09:17:05 得分 0

在你的“下一页”链接上传递页号的参数  
  Top

5 楼jekexys2004(浪傲)回复于 2005-06-03 09:24:29 得分 10

楼主的分析完全正确,的确是当你点下一页是request("keyword")等于空,我是这样解决的。  
  keyword=trim(request("keyword"))  
  if   keyword<>""   then  
  response.cookies("keyword")=keyword  
  end   if  
  word   =   request.cookies("keyword")Top

6 楼poolnet()回复于 2005-06-03 09:32:10 得分 0

无语Top

7 楼leo963258(我劝天公重抖擞,不拘一格降人才)回复于 2005-06-03 09:32:48 得分 5

下页的时候。把keyword的值带上来  
  dtxx_zh.asp?keyword=xxxx&page=2  
  Top

8 楼ruralboy(乡下男孩)回复于 2005-06-03 09:54:22 得分 0

感谢各位高手回答  
  我按照   poolnet()   的方法试了一下,可以,jekexys2004的方法也可以  
  但是新的问题出现了:翻到下一页的时候记录全部为空!  
  是不是我用的分页代码有问题?请大家帮忙看一下:  
   
  <!--#include   file="paginate.asp"-->  
  paginate.asp代码:  
  <%  
  Class   paginate  
  Public   strconn             '数据库连接字段  
  Public   persize             '每分页大小数  
  Public   strsql               'sql语句  
  Public   targets             '目标地址  
   
          Dim   pagenow               '现在的页数  
  Dim   pagetotal           '总页数  
          Dim   objConn                
  Dim   objRs  
  Dim   moveno  
   
          Private   Sub   Class_Initialize       '   设置类初始化事件。  
                  If   Request("page")   =   Empty   Then  
                          pagenow   =   0  
                  Else  
                          pagenow   =   cint(request("page"))   -   1  
                  END   If  
          End   Sub  
   
   
          Private   Sub   Class_Terminate       '   设置关闭事件。  
   
          End   Sub  
   
          Public   Sub   connect         '打开数据库连接  
                Set   objConn   =   Server.CreateObject("ADODB.Connection")          
                Set   objRs   =   Server.CreateObject("ADODB.RecordSet")  
                objConn.Open   strConn  
                objRs.open   strsql,objConn,   1,   1  
                pagetotal   =   (objRs.RecordCount   \   persize)   +   1       '总页数  
                moveno   =   pagenow   *   persize     '看看传过来的分页数,以确定从哪一条新闻开始读起  
        if   objRs.RecordCount>moveno   then  
        objRs.move   moveno  
        end   if        
          End   Sub  
   
          Public   Sub   first  
                  If   pagecount   =   1   Then                   '这是只有一页的情况  
                          response.write   "第一页"  
                  Else  
                          If   pagenow   =   0   Then                       '这是第一页的情况  
                                  response.write   "第一页"  
                                  page1=false  
                          Else  
                                  page1=true  
                          End   if  
   
                          If   pagenow   =   pagecount   -   1   then       '这是多页情况下的最后一页  
                                  response.write   "<a   href="""   &   targets   &   "?page=1"">第一页</a>"  
                                  page2=false  
                          Else  
                                  page2=true  
                          End   if  
   
                          If   page2   AND   page1   then     '这是多页情况下中间的页数  
          response.write   "<a   href="""   &   targets   &   "?page=1"">第一页</a>"  
                          End   if  
                  End   If  
          End   Sub  
     
          Public   Sub   last  
                  If   pagecount   =   1   Then                   '这是只有一页的情况  
                          response.write   "最后页"  
                  Else  
                          If   pagenow   =   0   Then                       '这是第一页的情况  
                                  response.write   "<a   href="""   &   targets   &   "?page="   &   pagetotal   &   """>最后页</a>"  
                                  page1=false  
                          Else  
                                  page1=true  
                          End   if  
   
                          If   pagenow   =   pagecount   -   1   then       '这是多页情况下的最后一页  
                                  response.write   "最后页"  
                                  page2=false  
                          Else  
                                  page2=true  
                          End   if  
   
                          If   page2   AND   page1   then     '这是多页情况下中间的页数  
                                  response.write   "<a   href="""   &   targets   &   "?page="   &   pagetotal   &   """>最后页</a>"  
                          End   if  
                End   If  
  End   Sub  
     
  Public   Sub   nextd  
                  If   pagecount   =   1   Then                   '这是只有一页的情况  
                          response.write   "下一页"  
                  Else  
                          If   pagenow   =   0   Then                       '这是第一页的情况  
                                  response.write   "<a   href="""   &   targets   &   "?page="   &   pagenow+2   &   """>下一页</a>"  
                                  page1=false  
                          Else  
                                  page1=true  
                          End   if  
   
                          If   pagenow   =   pagecount   -   1   then       '这是多页情况下的最后一页  
                                  response.write   "下一页"  
                                  page2=false  
                          Else  
                                  page2=true  
                          End   if  
   
                          If   page2   AND   page1   then     '这是多页情况下中间的页数  
                                  response.write   "<a   href="""   &   targets   &   "?page="   &   pagenow+2   &   """>下一页</a>"  
                          End   if  
                  End   If  
          End   Sub  
     
          Public   Sub   pre  
                  If   pagecount   =   1   Then                   '这是只有一页的情况  
                          response.write   "上一页"  
                  Else  
                          If   pagenow   =   0   Then                       '这是第一页的情况  
                                  response.write   "上一页"  
                                  page1=false  
                          Else  
                                  page1=true  
                          End   if  
   
                          If   pagenow   =   pagecount   -   1   then       '这是多页情况下的最后一页  
                                  response.write   "<a   href="""   &   targets   &   "?page="   &   pagenow   &   """>上一页</a>"  
                                  page2=false  
                          Else  
                                  page2=true  
                          End   if  
     
                          If   page2   AND   page1   then     '这是多页情况下中间的页数  
                                  response.write   "<a   href="""   &   targets   &   "?page="   &   pagenow   &   """>上一页</a>"  
                          End   if  
                  End   If  
          End   Sub  
   
          Public   Sub   rs(content)       '读数据库内容  
          Response.Write   objRs(content)  
  End   Sub  
   
          Public   Sub   total               '总页数  
          Response.Write   pagetotal  
  End   Sub  
   
  Public   Sub   nowpage             '现在的页数  
          Response.Write   pagenow   +   1  
  End   Sub  
   
  Public   Sub   gonext               '指针后移  
          objRs.MoveNext  
  End   Sub  
   
  Public   Sub   goprev                 '指针前移  
          objRs.MovePrevious  
  End   Sub  
   
  Public   Function   iseof       '判断是否表尾  
          iseof   =   objRs.Eof  
  End   Function  
   
  Public   Function   isbof       '判断是否表头  
          isbof   =   objRs.Bof  
  End   Function  
   
          Public   Sub   Closed         '关闭数据库连接  
                  objRs.Close  
  objConn.Close  
          Set   objRs   =   Nothing  
          Set   objConn   =   Nothing  
          End   Sub  
  End   Class  
  %>Top

9 楼jolinkyo(楼主太有才了)回复于 2005-06-03 09:59:18 得分 10

用session()  
   
  if   trim(request("keyword"))<>""   then  
  session("keywork")=trim(request("keyword"))  
  end   if  
   
  在sql语句里就用session("keywork")来比较  
   
  注意在查询页要把session("keyword")清空  
  session("keywork")=""Top

相关问题

  • 查询后分页
  • 利用子查询和rownum做分页行不行??
  • oracle查询分页显示
  • 如何做查询分页?
  • 查询后分页技术
  • 查询分页的问题
  • 查询分页问题
  • 查询分页问题
  • 问个关于分页和查询输入条件保留的问题
  • 条件查询中的分页问题

关键词

  • word
  • asp
  • 分页
  • keyword
  • dtxx
  • sqlstr
  • 问题
  • example
  • zh
  • trim

得分解答快速导航

  • 帖主:ruralboy
  • qiangtian
  • poolnet
  • everywhen
  • jekexys2004
  • leo963258
  • jolinkyo

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo