| 网站首页 | 新闻快报 | 软件教程 | 硬件教程 | 设计学院 | Q Q 专区 | 编程开发 | 网络安全 | 
您现在的位置: 浩扬网络 >> 编程开发 >> 汇编文章 >> 教程正文
介绍一个制作 select 下拉框的新方法
作者:不详 文章来源:网络收集 点击数: 更新时间:2006-5-2 15:40:50

这个方法,以前从没听用过,以前如果我从数据库里读出内容来制作下拉菜单的话都是用循环来做的,现在,让我们来看一下老外的办法。

    利用RecordSet.GetString来制作动态下拉菜单。

    adodb.recordset的getstring方法有一些BUG,但是你使用得小心一点的话它可以为您工作的很好。

    先介绍一下GETSTRING 的用法如下:

    stringValue = rsObject.GetString( format, numRows, columnDelimiter, rowDelimiter, ifNull )

    只要建立了RS对象,并且执行了相应操作,不管那是返回一条或者多条记录,甚至是空记录,getstring照样工作,但是如果不加注意的话,这个结果可能就不大好玩了,:P(这个老外也够幽默的)

    FORMAT参数只有一个合法值,而且是可选的,让我们略过不管它,如果您想返回全部记录的话,那么那个numrows参数也可以不管它了(可选),IFNULL……照我的理解就象TSQL里的isnull函数差不多,如果是NULL,则随便搞个值替换它,所以也不管它。

    剩下两个参数了,先看例子:

    〈TABLE Border=1〉
    〈TR〉〈TD〉
    〈% = Response.Write rs.GetString( , , “〈/TD〉〈TD〉“, “〈/TD〉〈/TR〉〈TR〉“, ) %〉
    〈/TABLE〉

    这样写的HTML结果如下:

    〈TABLE Border=1〉
    〈TR〉
        〈TD〉row1, field1 value〈/TD〉
        〈TD〉row1, field2 value〈/TD〉
    〈/TR〉
    〈TR〉
        〈TD〉row2, field1 value〈/TD〉
        〈TD〉row2, field2 value〈/TD〉
    〈/TR〉
    〈TR〉
    〈/TABLE〉

    这个也是老外口中说的那个BUG了,让我们看一下具体怎么做的:

    〈%
    Set RS = conn.Execute(“SELECT theValue,theText FROM selectOptionsTable ORDER BY theText“)

    optSuffix = “〈/OPTION〉“ & vbNewLine
    valPrefix = “〈OPTION Value=’“
    valSuffix = “’〉“
    opts = RS.GetString( , , valSuffix, optSuffix & valPrefix, “--error--“ )
    ’ Next line is the key to it!
    opts = Left( opts, Len(opts)-Len(valPrefix) )

    Response.Write “〈SELECT ...〉“ & vbNewLine
    Response.Write valPrefix & opts
    Response.Write “〈/SELECT〉“
    %〉

    你用过这种方法么,实话,我可从没见过,也没听有人说起。

    附带一下,您如果想建立一个正确的表格的话,也就是我头上说的那个BUG,只要这样做就可以了:

    〈%
    Set RS = conn.Execute(“SELECT * FROM table“)

    tdSuffix = “〈/TD〉“ & vbNewLine & “〈TD〉
    trPrefix = “〈TR〉“ & vbNewLine & “〈TD〉“
    trSuffix = “〈/TD〉“ & vbNewLine & “〈/TR〉“ & vbNewLine & “〈TR〉“ & vbNewLine
    opts = RS.GetString( , , tdSuffix, trSuffix & trPrefix, “--error--“ )
    ’ Next line is the key to it!
    opts = Left( opts, Len(opts)-Len(trPrefix) )

    Response.Write “〈TABLE Border=1 CellPadding=5〉“ & vbNewLine
    Response.Write trPrefix & opts
    Response.Write “〈/TABLE〉“ & vbNewLine
    %〉

    ------------------------------------------------------------------------
    再介绍一个完全不同的办法:

    〈%
    SQL = “SELECT ’〈OPTION Value=’’’,value,’’’〉’,text,’〈/OPTION〉’ FROM table ORDER BY text“
    Set RS = conn.Execute(SQL)
    Response.Write “〈SELECT〉“ & vbNewLine & RS.GetString(,,““,vbNewLine) & “〈/SELECT〉“
    %〉

    你用过吗?看到了吧,可以直接从查询中返回结果。

    再进一步,您可以这样做(ACCESS下我试过):

    〈%
    SQL = “SELECT ’〈OPTION Value=’’’ & value & ’’’〉’ & text & ’〈/OPTION〉’ FROM table ORDER BY text“
    Set RS = conn.Execute(SQL)
    Response.Write “〈SELECT〉“ & vbNewLine & RS.GetString(,,““,vbNewLine) & “〈/SELECT〉“
    %〉

    希望能对你有所帮助!
【教程录入:笑珠儿    责任编辑:笑珠儿 】
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
网友评论:(评论内容只代表网友观点,与浩扬网络立场无关!)
热门文章

赞助商


| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 |