我的代码如下:
<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>
答案 0 :(得分:5)
runat="server"
属性添加到<select>
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();
此代码已经过测试。 :)