当前位置: 首页 > 图文教程 > 网络编程 > ASP > 介绍一个制作下拉菜单完全不同的办法

ASP
嵌入式Web视频点播系统实现方法
GB与BIG5内码转换COM原代码
金额阿拉伯数字转换为中文的存储过程
利用 WSH 作定时工作流程
用InstallShield 进行 ASP 软件的打包和自动安装
服务器获得客户端时间的方法
关于如何读出图片的高度与长度的总结
按下回车键指向下一个位置的一个函数
一个不错的随机函数
一套加解密字符串的函数
一段加密函数(base64)
一段加密函数
使用asp实现支持附件的邮件系统(三)
使用asp实现支持附件的邮件系统(二)
使用asp实现支持附件的邮件系统(一)
检查当前目录下是否存在指定的文件,如果存在就重新命名
MD5加密的javascript实现例子
如何在服务器端调用winzip命令行对上传的多个文件打包压缩
MD5不可逆加密算法的ASP实现实例
看人家用使用InstallShield制作ASP安装程序(6)

ASP 中的 介绍一个制作下拉菜单完全不同的办法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 209 ::
收藏到网摘: n/a

       我是头一回知道这个方法,以前从没听用过,以前如果我从数据库里读出内容来制作下拉菜单的话都是用循环来做的,现在,让我们来看一下老外的办法。
  
  利用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下我试过)