如何在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>
- 将
runat="server"
属性添加到<select>
在代码后面(按钮处理程序代码)做:
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();
这段代码经过测试。:)