日期:2013-05-15  浏览次数:21000 次

追求是永无止境的。

我们现在有时间来考虑一个更深层次的问题,就是记录的显示。
记录的显示是一个古老的话题,通常的做法是:
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.