2010-03-04 3 views
29

Ho codice qui sotto:come ottenere il valore di un html selezionato selezionare con asp.net

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

ho bisogno di ottenere il valore selezionato opzioni il postback. Come posso farlo con asp.net?

+1

Grande ... Che ne dici di valori multipli ??? –

risposta

39

È necessario aggiungere un nome al vostro elemento <select>:

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

Sarà inviata al server, e si può vedere utilizzando:

Request.Form["testSelect"] 
+0

Grazie mille. –

+1

Nessun problema. Pontus fa un punto valido sull'utilizzo di un Drop-Down sul lato server, se possibile, ma ho pensato che avessi una buona ragione per non usarlo. – Kobi

+0

Qualsiasi fortuna con più valori selezionati dall'utente?! –

1

Java script:

usa la funzione elementid. selectedIndex() per ottenere l'indice selezionato

6

Se si desidera utilizzare asp:dropdownlist, è possibile selezionarlo più facilmente da testSelect.Text.

Ora si dovrebbe fare un Request.Form["testSelect"] per ottenere il valore dopo aver premuto btnTes.

Spero che aiuti.

EDIT: è necessario specificare un name del select (non solo ID) per essere in grado di Request.Form["testSelect"]

0
<%@ 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> 

origine da Microsoft. Spero che questo sia utile!

+1

Vedi una direttiva del server runat nel mio codice? –

4

Ho usato questa soluzione per ottenere quello che ti serve.

Let'say che nel mio codice aspx c'è un elenco di selezione runat = "server":

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

Nel mio codice C# ho usato il codice qui sotto per recuperare il testo e anche il valore delle opzioni:

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

In questo caso, controllo se l'utente ha selezionato una delle opzioni. Se non è selezionato nulla, mostro il testo come "non informato".

+0

Come si può vedere la domanda riguarda una selezione senza attributo del server runat. –

+0

sì, lo so, stavo solo mostrando un altro aproach per ottenere lo stesso risultato. Grazie per il commento =) –