经典ASP中的动态选择选项

时间:2015-01-09 14:33:00

标签: select asp-classic

我试图在经典ASP中编写此代码但由于某些原因我无法将其运行。也许我错过了一些东西:

        <select name="reseller" />
        <option value="">Select a Reseller:</option>
        <%
        sql = "SELECT resellerid, company FROM resellers WHERE insidesales <> 'True' ORDER BY company ASC"
        set rsResellers=conn.execute(sql)
            do until rsResellers.eof
                thisReseller = rsResellers("company")
                if strReseller = thisReseller then thisSEL = " SELECTED='SELECTED'" else thisSEL = "" end if
                response.write "<option value="""& rsResellers("company") &""""& thisSEL &">"& rsResellers("company") &"</option>"
            rsResellers.movenext
            loop
        rsResellers.close
        set rsResellers=nothing
        %>
        </select>

strReseller提出了一个问题:strReseller = rsRMA(&#34;经销商&#34;)。如果我做一个response.write strReseller,我得到一个值,所以我知道字符串不是空的。但由于某些原因,该选项不是&#34; SELECTED&#34;。

我知道我应该使用&#34; resellerid&#34;但是对于这个特定的项目,我不能接管一个包含数据的旧数据库,而且数据不会使用该ID。

1 个答案:

答案 0 :(得分:1)

我会使用StrComp而不是equals,也不会只使用Response.Write编写每个选项。像这样的东西

<select name="reseller" />
<option value="">Select a Reseller:</option>
<% sql = "SELECT resellerid, company" &_
          "FROM resellers WHERE insidesales <> 'True'" &_ 
          "ORDER BY company ASC"
    set rsResellers=conn.execute(sql)
    do until rsResellers.eof
        thisReseller = rsResellers("company")
        if StrComp(strReseller, thisReseller, 1) = 0 then 
            thisSEL="selected='selected'" 
        else thisSEL="" 
        end if %>
        <option value="<%=thisReseller %>" <%=thisSEL%> ><%=thisReseller %></option>
        <% rsResellers.movenext
    loop
    rsResellers.close
    set rsResellers=nothing %>
</select>

这将使您的检查不区分大小写,这可能是您出错的原因。