从后面的代码获取HTML下拉列表值

时间:2014-01-23 10:53:13

标签: c# asp.net

我的页面中有下拉列表和asp按钮,如下所示:

<select id="select1" >
   <option value="smiley.gif">Smiley</option>
   <option value="angry.gif">Angry</option>
   <option value="stickman.gif">Stickman</option>
</select>
  <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />

单击按钮后,我需要从下拉列表中获取所选值并将其保存在会话中。 但是当列表更改时,它不应该重新加载页面(简单地说我不需要使用runat="server")。 怎么做?

2 个答案:

答案 0 :(得分:2)

您从Request对象中获取值。

编辑,感谢@Péter的评论,将name属性添加到select元素:

<select id="select1" name="select1">
   <option value="smiley.gif">Smiley</option>
   <option value="angry.gif">Angry</option>
   <option value="stickman.gif">Stickman</option>
</select>

在代码隐藏中:

var selectedOption = Request["select1"];

但是,如果您使用的是asp.net,我建议您使用select的服务器版本(runat = server),从而可以直接从代码隐藏中的Select对象访问该值。

要避免回发,您可以设置AutoPostback = false,以下解决方案在下拉列表中选择值时不会回发。你可以通过使用asp.net控件来获得类型安全等奖励:

<asp:DropDownList id="select1" runat="server" AutoPostback="False">
   <asp:ListItem Value="smiley.gif" Text="Smiley"/>
   <asp:ListItem Value="angry.gif" Text="Angry"/>
   <asp:ListItem Value="stickman.gif" Text="Stickman"/>
</asp:DropDownList>
  <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />

在代码隐藏中:

var selectedOption = select1.SelectedValue;

答案 1 :(得分:0)

您需要设置html控件的名称,然后您可以从Request Object获取它。

<select id="select1" name="myselect" >
   <option value="smiley.gif">Smiley</option>
   <option value="angry.gif">Angry</option>
   <option value="stickman.gif">Stickman</option>
</select>

在你的按钮内点击事件处理程序:

string selection = Request["myselect"];