如何在asp.net中获得Html选择的选定索引

本文关键字:选择 Html 索引 asp net | 更新日期: 2023-09-27 18:13:47

我的代码如下:

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

如何在asp.net中获得Html选择的选定索引

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

EDIT:回答关于SelectedIndex属性-1值的评论

MSDN HtmlSelect。SelectedIndex属性:

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

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

这段代码经过测试。:)