常州五颜六色网络技术有限公司 -> 网站建设 -> 介绍一个制作下拉菜单完全不同的办法。 登录 -> 注册 -> 回复主题 -> 发表主题

阿七 2006-04-03 13:59
介绍一个制作下拉菜单完全不同的办法。 Qf#=Y j  
出处   64R~ $km  
x=%wP VJ  
介绍一个制作下拉菜单完全不同的办法。 >Xv Fg  
作者: 未知 !}pvrBS  
.:/[%q{k  
…… ;:A/WU.^  
我是头一回知道这个方法,以前从没听用过,以前如果我从数据库里读出内容来制作下拉菜单的话都是用循环来做的,现在,让我们来看一下老外的办法。 sRK oM  
利用RecordSet.GetString来制作动态下拉菜单。 %("WoBPH`  
adodb.recordset的getstring方法有一些BUG,但是你使用得小心一点的话它可以为您工作的很好。 >,}SP;  
先介绍一下GETSTRING的用法……如下: Lh rU fy  
stringValue = rsObject.GetString( format, numRows, columnDelimiter, rowDelimiter, ifNull ) 'M!*Ge  
只要建立了RS对象,并且执行了相应操作,不管那是返回一条或者多条记录,甚至是空记录,getstring照样工作,但是如果不加注意的话,这个结果可能就不大好玩了,:P(这个老外也够幽默的) ;*[ oi  
FORMAT参数只有一个合法值,而且是可选的,让我们略过不管它,如果您想返回全部记录的话,那么那个numrows参数也可以不管它了(可选),IFNULL……照我的理解就象TSQL里的isnull函数差不多,如果是NULL,则随便搞个值替换它,所以也不管它。 K zWqHq  
剩下两个参数了。。。。不多说废话了,先看他们的例子 #L`'<ge'g*  
<TABLE Border=1> GX0S9s  
<TR><TD> (JdZl2A.  
<% = Response.Write rs.GetString( , , "</TD><TD>", "</TD></TR><TR>", ) %> gPqdl6#c  
</TABLE> >#[,OU}N  
这样写的HTML结果如下: L|]!ULi$d  
<TABLE Border=1> ]Mb :zs<r  
<TR> )y "8Bx=x4  
<TD>row1, field1 value</TD> N4rDe]JnPR  
<TD>row1, field2 value</TD> X]+z:!  
</TR> HVH<S  
<TR> hZwJ@ Vm#  
<TD>row2, field1 value</TD> ESi'3mbeC  
<TD>row2, field2 value</TD> ?M9?GodbP.  
</TR> HIsB)W&%@  
<TR> d<_#Q7]I4  
</TABLE> =QS%D*.|D  
这个也是老外口中说的那个BUG了,让我们看一下具体怎么做的 `Bzj DI:a  
<% hF`Qs  
Set RS = conn.Execute("SELECT theValue,theText FROM selectOptionsTable ORDER BY theText") &e)V!o@wJV  
optSuffix = "</OPTION>" & vbNewLine EK2mJCC|  
valPrefix = "<OPTION Value='" gn)>(MG  
valSuffix = "'>" t~_ bquGk  
opts = RS.GetString( , , valSuffix, optSuffix & valPrefix, "--error--" ) J. $U_k  
' Next line is the key to it! O)%s_/UX  
opts = Left( opts, Len(opts)-Len(valPrefix) ) > JP}OS  
Response.Write "<SELECT ...>" & vbNewLine 1w}D fI  
Response.Write valPrefix & opts .1YiNmW=  
Response.Write "</SELECT>" D* QZR;D#.  
%> 7u<C&Z/  
你用过这种方法么,实话,我可从没见过,也没听有人说起,:( U0@Qc}y  
附带一下,您如果想建立一个正确的表格的话,也就是我头上说的那个BUG,只要这样做就可以了: O#n=mJ  
<% )NmYgd~%  
Set RS = conn.Execute("SELECT * FROM table") r^T+ I3  
tdSuffix = "</TD>" & vbNewLine & "<TD> Nq"J[l*+g  
trPrefix = "<TR>" & vbNewLine & "<TD>" '#NDR:J"  
trSuffix = "</TD>" & vbNewLine & "</TR>" & vbNewLine & "<TR>" & vbNewLine Ctx{rf_~  
opts = RS.GetString( , , tdSuffix, trSuffix & trPrefix, "--error--" ) IN?6~O p  
' Next line is the key to it! P2g}G4qf  
opts = Left( opts, Len(opts)-Len(trPrefix) ) b^R_8x  
Response.Write "<TABLE Border=1 CellPadding=5>" & vbNewLine G'{*guYU  
Response.Write trPrefix & opts C`["4  
Response.Write "</TABLE>" & vbNewLine +o|I@7f  
%> 9w.ZXd  
------------------------------------------------------------------------ mGh8/Xt  
再介绍一个完全不同的办法。。。(我看了快昏倒) dmPAPCm%y  
<% Xq%ijo  
SQL = "SELECT '<OPTION Value=''',value,'''>',text,'</OPTION>' FROM table ORDER BY text" Dd'J"|jF38  
Set RS = conn.Execute(SQL) `]4tJJy$  
Response.Write "<SELECT>" & vbNewLine & RS.GetString(,,"",vbNewLine) & "</SELECT>" Vc!'=&*  
%> @Px_\w  
你用过吗。。。 6vf<lmN  
看到了吗?可以直接从查询中返回结果。 gB])@O%/  
再进一步,您可以这样做(ACCESS下我试过) #Q/xQ`+|.  
<% 09J,!NN  
SQL = "SELECT '<OPTION Value=''' & value & '''>' & text & '</OPTION>' FROM table ORDER BY text" hVW1l&s  
Set RS = conn.Execute(SQL) 51 "v`O+  
Response.Write "<SELECT>" & vbNewLine & RS.GetString(,,"",vbNewLine) & "</SELECT>" FJ2~SKWT  
%> 4VP$, |a  
…………………… `<(o;*&Gd  
:( "0m\y+%8  
不多说了 r#(*x 2~,  
希望能对你有所帮助


查看完整版本: [-- 介绍一个制作下拉菜单完全不同的办法。 --] [-- top --]



Copyright © 2005-2014 5y6s Inc. 苏ICP备05001866号 Powered by PHPWind 5.0.1
Time 0.009025 second(s),query:3 Gzip enabled