荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: gary (★有所属), 信区: Homepage
标  题: 用ASP实现分页显示
发信站: BBS 荔园晨风站 (Wed Oct 18 10:25:39 2000), 转信

 产 品 编 号:Product_Id
  产 品 名 称:Product_Name
二. 功 能 描 述:
   用户输入产品号,不必输入全名,采用模糊查询的方法,找到满足条件的纪录。
三. 程 序 脚 本
   整个程序有三个 Asp 文件(省略Html语言部分)
1. 用户查询数据输入表单:Input.Asp
  -----用户输入产品编号
   < Form Method="Post" Action="/Cgi/Prod.Asp" >
     < Input Type="Text" Name="Id" Size="20" >
   < Input Type="Submit"
     Value="Submit" Name="B1" >
  < /Form >
2.分页处理程序之一:Prod.Asp
----用户提交表单Input.Asp后触发
< %Cid=Trim(Request.Form("Id"))% >
< %Set Rlt = Createobject("Adodb.Recordset")% >
******创建Recordset对象
< %Sql="Select * From Product Where Product_Id Like '  "& Cid &"'+'%'" >
< %Rlt.Open Sql,"Uid=Ncgi;Pwd=Sql;Dsn=Tcgi",1% >
******执行Sql语句
< % If Rlt.Pagecount<  1 Then % >
       < H2 >没有纪录< /H2 >
       < A Href="Javascript:History.Back()" >
    返回< /A >
< %Else% >
----------------------------------------------------------------
*****以下显示查询信息:显示样式:
*****共有XX页XXX条纪录 页号:1 .2 .3. 4. 5.........
----------------------------------------------------------------
共有< %=Rlt.Pagecount% >页
< %=Rlt.Recordcount% >条纪录
页号:< % For I=1 To Rlt.Pagecount% >
       < %cid=rlt("product_id")
   < AHref="Prodpage.Asp?Pcnt=< %=I% >&id=< %=cid% > >
    < %=I% >.< /A >
     < %Next % >
        < /A >
    < Hr >
   < %Rlt.Pagesize=20% >
-----------------------------------------------------------
******以下显示产品列表:显示样式:
******1.XXXX
******2.XXXX
****** ...........
-------------------------------------------------------------
< %Rlt.Absolutepage=1% >
< % For I=1 To Rlt.Pagesize% >
    < % If Rlt.Eof Then
      Exit For
      End If% >
  < Li >< %=I% >. < %=Trim(Rlt("Product_Name"))< /Li >
< %Rlt.Movenext
 Next% >
< %Rlt.Close% >
3.分页处理程序之二:Propage.Asp
----用户选择 (页号:1 .2 .3. 4. 5.........)中某页号后触发
< %Cid=Trim(Request.querystring("Id"))% >
< %Rlt.Absolutepage=Request.Querystring("Pcnt")% >
******以上部分与Prod.Asp相同 *****
< % For I=1 To Rlt.Pagesize% >
    < % If Rlt.Eof Then
      Exit For
      End If% >
  < Li >< %=I% >. < %=Trim(Rlt("Product_Name"))< /Li >
< %Rlt.Movenext
 Next% >
< %Rlt.Close% >
四。 补 充 说 明;
   你可以让用户设置每页的长度。方法是用Session 对象维护用户信息接受用户设置
信息:
< %session("size")=request.form("size")% >
把Prod.asp中 < %Rlt.Pagesize=20% >一句用下列语句代替
 < %if session("size")="" then
            rlt.pagesize=20
           else
   rlt.pagesize=session("size")
 end if% >
                   疑难解析
1.分页功能的关键:
  Pagesize  Absolutepage属性的应用
  Pagesize:  每页纪录大小
  Absolutepage:光标定位到那一页.比如说有20条纪录,分成两页,每页十条
  Absolutepage=1则从第一条纪录开始。
  Absolutepage=2则从第十一条纪录开始。
2.< %Rlt.Open Sql,"Uid=Ncgi;Pwd=Sql;Dsn=Tcgi",1% >
 Dsn:系统数据源名,Uid:用户名,Pwd:用户密码,1:光标类型
你必须在控制面板-- >
32位Odbc中建立系统数据源,记住是系统数据源而不是用户数据源
光标类型:0,是默认值,但如果你想实现分页功能光标类型必须设为1
不然 Recordcount Pagesize Pagecount属性都不能用.
3.request.form("id")和request.querystring("id")
  request.form("id")指从表单接收数据,注意表单input.asp中输入框的名字是id
  request.querystring("id")指从URL中接受数据

--
   I Believe I Can ...
_____________________________________________________
欢迎光临我的主页          Netdreams!

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.18.239]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店