分页|控制|显示在上一篇中,我们分析了一个简单的通用分页代码控制。
但是通常我们在分页的 ASP 页面中要使用到查询功能,那么怎样将查询也“封装”起来呢?
同样需要用到 include 方式。
我们可以把查询看作两部分,
1、输入,即接收用户输入的查询字符串,我们把它放在 query.inc 中
2、输出,即根据用户输入的内容构造查询条件,我们把它放在 query_result.inc 中
这样一来,我们的思路就很清晰了,
1、将 query_result.inc 放在 SQL 语句之前,构造查询条件,然后将查询条件嵌入 SQL 语句中
2、将 query.inc 放在 ASP 页面适当的地方(通常和 navigator.inc 在同一行)。
在接下来的文章中,要稍微复杂一点,因此我们先来看看一个示范的数据库:mytest
表1 tbluserinfo ' 用户信息表
字段 flduserinfo_id ' 用户 ID
flduserinfo_username
flduserinfo_nickname
flduserinfo_password
表2 tbladdressbook ' 通讯录表
字段 fldaddressbook_id
fldaddressbook_classid ' 类别 ID
fldaddressbook_userid ' 用户 ID
fldaddressbook_nickname
表3 tbladdressbook_class ' 通讯录类别表
字段 fldaddressbook_class_id ' 类别 ID
fldaddressbook_class_title ' 例如:朋友、客户、亲人、网友
fldaddressbook_class_explain ' 类别说明
视图 vwaddressbook
SELECT tbladdressbook_class.fldaddressbook_class_title,
tbladdressbook_class.fldaddressbook_class_explain,
tbladdressbook.fldaddressbook_id, tbladdressbook.fldaddressbook_userid,
tbladdressbook.fldaddressbook_classid, tbladdressbook.fldaddressbook_nickname,
FROM tbladdressbook INNER JOIN
tbladdressbook_class ON
tbladdressbook.fldaddressbook_classid = tbladdressbook_class.fldaddressbook_class_id
[注意:我在每个字段中加上了表的名字,这是为了生成视图方便,以及其他隐含的麻烦。经过我的长期尝试,发现这种方法的确很好。因此向大家推荐这种命名方式。]
当我们在 tbladdressbook 中查询时,要用 flduserid 来区分每个用户的通讯录内容,因此要加上 " flduserid=" & Session("userid") 的限制。现在我们把这个限制加到我们的 SQL 语句中。
请看 sample2.asp
<一> 需要分页的 ASP 文件
sample2.asp
<%
' 取得当前 ASP 页面的完整路径,重要技巧
theScript = Request.ServerVariables("SCRIPT_NAME")
myconnstr = "driver={SQL Server};server=yourserver;uid=sa;pwd=;database=mytest"
thePageSize = 20 ' 每页显示的记录数
'//////////////////////////////////////////////////////////
'
' 定义表名
'
'//////////////////////////////////////////////////////////
theTableName= "addressbook"
'///////////////////////////
超酷的通用分页显示控制 (二) 加入查询控制
80酷酷网 80kuku.com