【发布时间】:2011-01-30 01:48:21
【问题描述】:
我使用的是经典的 asp,我有一个用户选择然后按提交的下拉列表。在他们按下提交后,下拉列表将返回默认值,而不是他们选择的值。无论如何要保持回发之间的下拉状态而不是回到默认状态?如果需要,可以发布代码示例。 谢谢!
【问题讨论】:
标签: asp-classic postback
我使用的是经典的 asp,我有一个用户选择然后按提交的下拉列表。在他们按下提交后,下拉列表将返回默认值,而不是他们选择的值。无论如何要保持回发之间的下拉状态而不是回到默认状态?如果需要,可以发布代码示例。 谢谢!
【问题讨论】:
标签: asp-classic postback
您必须根据用户发布的值“选择它”服务器端。
<select id="cars">
<option value="volvo"
<%
if request.form("cars") = "volvo" then
response.write("selected")
end if %>
>Volvo</option>
<option value="Saab"
<%
if request.form("cars") = "Saab" then
response.write("selected")
end if %>
>Saab</option>
<option value="Mercedes"
<%
if request.form("cars") = "Mercedes" then
response.write("selected")
end if %>
>Mercedes</option>
<option value="Audi" <%
if request.form("cars") = "Audi" then
response.write("selected")
end if %>
>Audi</option>
</select>
当然,您可能希望自行开发自己的函数以避免所有这些样板。
<%
sub option(value, data, select_id)
Response.Write("<option value=""" & value & """)
if request.form(select_id) = value then
Response.Write("selected")
end if
Response.Write(">" & data & "</option>")
end sub
%>
' (...)
<select id="cars">
<% option("volvo", "Volvo", "cars") %>
<% option("Saab", "Saab", "cars") %>
<% option("Mercedes", "Mercedes", "cars") %>
<% option("Audi", "Audi", "cars") %>
</select>
如果你给函数传递一个空白的select_id,它就不会在意回发时尝试选择select的选中项。
【讨论】:
您可以使用 javascript 和纯 HTML 来实现: HTML: 创建一个隐藏字段
Javascript: 提交时将所选值保留在隐藏变量中
页面加载 遍历下拉值并使用隐藏变量设置所选值
【讨论】:
select 的发布值时。