web-dev-qa-db-fra.com

Comment obtenir la valeur sélectionnée d'une sélection html avec asp.net

J'ai le code ci-dessous:

<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" />

J'ai besoin d'obtenir la valeur des options sélectionnées lors de la publication. Comment puis-je faire cela avec asp.net?

32
HasanG

Vous devez ajouter un nom à votre <select> élément:

<select id="testSelect" name="testSelect">

Il sera publié sur le serveur, et vous pouvez le voir en utilisant:

Request.Form["testSelect"]
41
Kobi

Si vous utilisiez asp:dropdownlist vous pouvez le sélectionner plus facilement en testSelect.Text.

Vous devez maintenant faire un Request.Form["testSelect"] pour obtenir la valeur après avoir appuyé sur btnTes.

J'espère que ça aide.

EDIT: Vous devez spécifier un name de la sélection (pas seulement l'ID) pour pouvoir Request.Form["testSelect"]

6
Pontus Bremdahl

J'ai utilisé cette solution pour obtenir ce dont vous avez besoin.

Disons que dans mon code .aspx il y a une liste de sélection runat = "server":

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

Dans mon code C #, j'ai utilisé le code ci-dessous pour récupérer le texte et également la valeur des options:

testSelect.SelectedIndex == 0 ? "uninformed" : 
    testSelect.Items[testSelect.SelectedIndex].Text);

Dans ce cas, je vérifie si l'utilisateur a sélectionné l'une des options. S'il n'y a rien de sélectionné, je montre le texte comme "non informé".

6

Javascript:

utilisez la fonction elementid. selectedIndex() pour obtenir l'index sélectionné

1
Pavunkumar
<%@ 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>

Source de Microsoft. J'espère que cela vous sera utile!

1
QuanCSE