如何在ASP.NET中获取HTML Select的选定值

36
我有以下代码:
<select id="testSelect">
    <option value="1">One</option>
    <option value="2">Two</option>
</select>
<asp:Button ID="btnTest" runat="server" Text="Test it!" onclick="btnTest_Click" />

我需要在后端获取已选择选项的值。如何使用asp.net实现这个功能?


1
很好...那么多个值怎么办? - Jalal El-Shaer
5个回答

47

你需要在 <select> 元素中添加一个名称:

<select id="testSelect" name="testSelect">
它将被提交到服务器,并且您可以使用以下方式查看它:
Request.Form["testSelect"]

1
没问题。Pontus提出了一个有效的观点,如果可能的话最好使用服务器端下拉列表,但我认为你有不使用它的充分理由。 - Kobi
用户选择多个值有什么进展吗? - Jalal El-Shaer
9
对于多个值,您可以使用Request.Form.GetValues("testSelect")。将来您可以提出一个新问题,这样会更快得到答案。 - Kobi
这对我不起作用;如果感兴趣,请查看此处的更新3:http://stackoverflow.com/questions/42655000/how-can-i-get-the-text-of-the-selected-item-in-an-html-select-element - B. Clay Shannon-B. Crow Raven

10

我已经使用这个方法来得到你所需要的。

假设在我的.aspx代码中有一个带有runat="server"属性的选择列表:

<select id="testSelect"  runat="server" ClientIDMode="Static" required>
    <option value="1">One</option>
    <option value="2">Two</option>
</select>

我在我的C#代码中使用了下面的代码来检索选项的文本和值:

testSelect.SelectedIndex == 0 ? "uninformed" : 
    testSelect.Items[testSelect.SelectedIndex].Text);
在这种情况下,我会检查用户是否选择了任何选项。如果没有选择任何选项,我会将文本显示为“未填写”。

正如您所看到的,这个问题涉及到一个没有runat server属性的select。 - HasanG
1
是的,我知道,我只是展示了另一种实现相同结果的方法。感谢您的评论=) - Paulo Henrique Queiroz

8
如果您使用asp:dropdownlist,您可以通过testSelect.Text更轻松地选择它。
现在,您需要执行Request.Form["testSelect"]以获取按下btnTes后的值。
希望这有所帮助。
编辑:您需要指定选择的name(不仅是ID)才能够Request.Form["testSelect"]

name 做到了! - Eaglan Kurek

2
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">    
<head>
    <title> HtmlSelect Example </title>
    <script runat="server">
      void Button_Click (Object sender, EventArgs e)
      {
         Label1.Text = "Selected index: " + Select1.SelectedIndex.ToString()
                       + ", value: " + Select1.Value;    
      }    
   </script>    
</head>    
<body>    
   <form id="form1" runat="server">

      Select an item: 

      <select id="Select1" runat="server">    
         <option value="Text for Item 1" selected="selected"> Item 1 </option>
         <option value="Text for Item 2"> Item 2 </option>
         <option value="Text for Item 3"> Item 3 </option>
         <option value="Text for Item 4"> Item 4 </option>
      </select>

      <button onserverclick="Button_Click" runat="server" Text="Submit"/>

      <asp:Label id="Label1" runat="server"/>    
   </form>
</body>
</html>

来自微软的资料。希望这对您有所帮助!


1

JavaScript:

使用 elementid.selectedIndex() 函数来获取所选索引。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接