追求是永无止境的。
我们现在有时间来考虑一个更深层次的问题,就是记录的显示。
记录的显示是一个古老的话题,通常的做法是:
1、在需要显示记录的 ASP 文件中,用 Dreamweaver 或者 Frontpage 画出表格,以及列标题
2、在 ASP 文件中用循环显示记录
3、由于网站风格调整,因此在 ASP 文件中需要作相应修改
假定我们有20个需要分页的 ASP 页面(对于一个较大的网站来说,这不算什么),都要这样做,实在麻烦,特别是遇到网站改版--而这种改版仅仅只是网站风格改变,内容并没有改变,这种情况大约 3-6 个月会有一次。
显然应该有更好的方法。
现在我们来作这样的考虑:
对于一个网站来说,它的风格是一定的,记录显示的页面也是一定的。我们可以先设置好页面的风格(用 Dreamweaver 或者 Frontpage 画出表格),然后放入函数中,用语句来生成表格。至于列表题,以及要显示的字段、字段的长度、对齐方式、是否显示链接等,全部用参数传入该函数,用该函数来生成数据表格。
请看 sample4.asp
<一> 需要分页的 ASP 文件
sample4.asp
<!--#include file="../inc/functions.inc"-->
<%
'//////////////////////////////////////////////////////////
'
' 定义表名
'
'//////////////////////////////////////////////////////////
theTableName= "addressbook"
'//////////////////////////////////////////////////////////
'
' 查询条件
'
'//////////////////////////////////////////////////////////
theQueryField = "fld" & theTableName & "_nickname"' 查询字段,完整名字
theQueryTitle = "昵称" ' 字段显示标题
theQueryTable = "vw" & theTableName ' 字段所在的表,完整名字
theQueryClass = theTableName & "_class" ' 类别表名,去掉 tbl、vw 前缀
theClassId = c2int(request("classid")) ' 当前类别号
' 如果是查询模式,则构造模糊查询语句
if request("mode") = "query" then
%><!--#include file="../inc/control/query_result.inc"--><%
else
' 否则忽略
theQueryCon = "1>0"
end if
'//////////////////////////////////////////////////////////
'
' 限制条件
'
'//////////////////////////////////////////////////////////
theLimitCon = "fld" & theTableName & "_userid=" & Session("userid")
if theClassId > 0 then
theLimitCon = theLimitCon & " and fld" & theQueryClass & "id=" & theClassId
end if
'//////////////////////////////////////////////////////////
'
' 构造 SQL 语句
'
'//////////////////////////////////////////////////////////
uSQL = "select * from " & theQueryTable & " where ( " & theQueryCon & " ) and ( " & theLimitCon & " ) "
%>
<!--#include file="../inc/control/navigator_init.