2010-03-04 34 views
29

tôi có mã dưới đây:Làm thế nào để có được lựa chọn giá trị của một html chọn với 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" /> 

tôi cần để chọn giá trị tùy chọn trên postback. Làm thế nào tôi có thể làm điều này với asp.net?

+1

Tuyệt vời ... Làm thế nào về nhiều giá trị ??? –

Trả lời

39

Bạn cần phải thêm tên cho nguyên tố <select> của bạn:

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

Nó sẽ được đưa lên máy chủ, và bạn có thể nhìn thấy nó sử dụng:

Request.Form["testSelect"] 
+0

Cảm ơn bạn rất nhiều. –

+1

Không sao cả. Pontus đưa ra một điểm hợp lệ về việc sử dụng trình đơn thả xuống phía máy chủ, nếu có thể, nhưng tôi cho rằng bạn có lý do chính đáng để không sử dụng nó. – Kobi

+0

Bất kỳ Luck nào có nhiều giá trị được người dùng lựa chọn?! –

1

Java script:

sử dụng elementid. selectedIndex() để lấy chỉ mục đã chọn

6

Nếu bạn sử dụng asp:dropdownlist, bạn có thể chọn nó dễ dàng hơn bằng cách testSelect.Text.

Bây giờ bạn phải thực hiện Request.Form["testSelect"] để nhận giá trị sau khi nhấn btnTes.

Hy vọng điều đó sẽ hữu ích.

EDIT: Bạn cần phải xác định một name của chọn (không chỉ ID) để có thể 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> 

Nguồn từ Microsoft. Hy vọng điều này là hữu ích!

+1

Bạn có thấy chỉ thị máy chủ runat trong mã của tôi không? –

4

Tôi đã sử dụng giải pháp này để có được những gì bạn cần.

Let'say rằng trong mã aspx của tôi có một danh sách lựa chọn runat = "server":

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

Trong C# mã của tôi tôi đã sử dụng mã dưới đây để lấy văn bản và cũng có giá trị của các tùy chọn:

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

Trong trường hợp này tôi kiểm tra xem người dùng có chọn bất kỳ tùy chọn nào không. Nếu không có gì được chọn, tôi sẽ hiển thị văn bản là "không được định dạng".

+0

Như bạn có thể thấy câu hỏi là về một lựa chọn không có thuộc tính máy chủ runat. –

+0

vâng, tôi biết, tôi chỉ đang trưng bày một sản phẩm khác để đạt được kết quả tương tự. Cảm ơn vì bình luận =) –

Các vấn đề liên quan