回发后下拉不保留选定的值

时间:2010-03-21 16:26:37

标签: asp-classic postback

我正在使用经典的asp,我有一个用户选择的下拉列表,然后按下提交。按下提交后,下拉列表将返回默认值而不是他们选择的值。反正是否保持帖子后退之间的下拉状态而不是恢复到默认状态?如果需要,可以发布代码示例。 谢谢!

2 个答案:

答案 0 :(得分:11)

您必须根据用户已发布的值来“选择”服务器端。

<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的所选项目。

答案 1 :(得分:0)

您可以使用javascript和纯HTML来实现此目的: HTML: 创建一个隐藏的字段

使用Javascript: 在提交时将所选值保留在隐藏变量

页面加载 循环通过下拉值并使用隐藏变量

设置所选值

http://www.daniweb.com/forums/thread105485.html

中还提供了另一种变体