如何在asp.net中选择Html选择的索引?

时间:2011-11-07 13:58:47

标签: c# asp.net

我的代码如下:

 <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做到这一点? 这是我填写select 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>

2 个答案:

答案 0 :(得分:5)

  1. runat="server"属性添加到<select>
  2. 在代码后面(按钮处理程序代码)执行:
  3. int selectedIndex = (test as HtmlSelect).SelectedIndex;
    

    编辑:回答有关SelectedIndex属性的-1值的评论

    MSDN HtmlSelect.SelectedIndex Property

      

    可以不选择任何项目。如果没有选择项目,则   SelectedIndex属性包含值-1 。这一般   页面首次加载并且未选择项目时发生   默认。提供代码以在引用项目之前测试此值   在Items集合中。否则,如果出现异常,则抛出异常   index超出了集合的范围。

答案 1 :(得分:0)

为您的Select HTML控件添加一个runat属性,以便可以在代码隐藏中访问它。

 <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();

此代码已经过测试。 :)