2011-11-07 52 views
3

我有下面的代碼:如何獲取在asp.net中選擇的Html選擇索引?

<select id="test"> 
     <option value="a">aaa</option> 
     <option value="b">bbb</option> 
    </select> 
    <asp:Button ID="btnTest" runat="server" Text="Test it!" onclick="btnTest_Click" /> 

我需要在回發選擇了不選擇的指標值。我怎樣才能做到這一點與asp.net? 這是我來填充選擇的html代碼:

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
    $("#<%=btnTest.ClientID %>").click(function(){ 
    $.ajax(
    { url: "StateCity.asmx/ReferItems?id=" + getParameterByName('id'), 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     type: "POST", 
     success: function(data) { 
     $("#test").empty(); 
     $.each(data.d, function() { 
     $("#test").append($("<option></option>").val(this['Value']).html(this['Text'])); 
     }); 

     }, 
     error: function() { alert("Error"); } 
    }) 
    }) 
</script> 
+0

同一問題在這裏:http://stackoverflow.com/questions/2378338/how-to-get-selected-value-of-a-html-select-with-asp-net – ZimSystem

+0

是的,但它是在談論選定的值。但我想要選擇索引 –

回答

5
  1. 添加runat="server"屬性的<select>
  2. 在後面的代碼(按鈕處理程序代碼)做:
int selectedIndex = (test as HtmlSelect).SelectedIndex; 

編輯:回答評論有關-1 SelectedIndex屬性的值

MSDN HtmlSelect.SelectedIndex Property

它可能有未選擇任何項目。如果未選擇項目,則 SelectedIndex屬性包含值-1。這通常是 在頁面第一次加載時發生,並且 默認情況下未選擇該項目。在參考項目集合中的項目 之前,提供代碼以測試此值。否則,如果 索引超出集合的範圍,則會引發異常。

+0

,但它總是返回-1。對於選定的值,我使用Request.Form [test.UniqueID]。但我應該爲選定的索引做些什麼。 –

+0

查看HTML源代碼是否有任何選項具有'selected =「true」 – sll

+0

否沒有選擇=「true」 –

0

將runat屬性添加到您的Selct HTML控件中,以便它可以在代碼隱藏中訪問。

<select id="test" runat="server"> 
     <option value="a">aaa</option> 
     <option value="b">bbb</option> 
     <option value="c">cc</option> 
    </select> 

後面的代碼

string dd = test.SelectedIndex.ToString(); 

此代碼進行測試。 :)

+0

羽絨選民,關心評論? – Shyju

+0

它適合我。謝謝 – cheloncio