我的页面中有下拉列表和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"
)。
怎么做?
答案 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"];