用ASP 实 现 分 页 显 示
发表于:2007-06-30来源:作者:点击数:
标签:
一. 表 结 构 定 义: ---- 表 名:Product ---- 表 名:Product ---- 字 段 名: 产 品 编号:Product_Id ---- 产 品 名 称:Product_Name 二. 功 能 描 述: ---- 用 户 输 入 产 品 号, 不 必 输 入全 名. 采 用 模 糊 查 询 的 方 法. 找 到 满 足 条 件 的 纪
一. 表 结 构 定 义:
---- 表 名:Product
---- 表 名:Product
---- 字 段 名: 产 品 编号:Product_Id
---- 产 品 名 称:Product_Name
二. 功 能 描 述:
---- 用 户 输 入 产 品 号, 不 必 输 入全 名. 采 用 模 糊 查 询 的 方 法. 找 到 满 足 条 件 的 纪 录.
---- 用 户 输 入 产 品 号, 不 必 输 入全 名. 采 用 模 糊 查 询 的 方 法. 找 到 满 足 条 件 的 纪 录.
三. 程 序 脚 本
---- 整 个 程 序 有 三 个Asp 文 件( 省略Html 语 言 部 分)
---- 整 个 程 序 有 三 个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% >
------------------- 北极星书库||http://www.ebook007.com
*****以下显示查询信息:显示样式:
*****共有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 对 象 维 护 用 户 信 息 接 受 用 户 设 置信 息:
< %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")
的名字是id
request.querystring("id")指从URL中接受数据
原文转自:http://www.ltesting.net