我试图从服务器端选择的选择中获取所选项目。
这是我的HTML:
<head>
<title></title>
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<link href="Content/chosen.css" rel="stylesheet" />
<form id="form1" runat="server">
<select id="chsn" runat="server" class="chzn-select" multiple="true" name="faculty" style="width: 200px;">
</select>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<script src="Scripts/chosen.jquery.js"></script>
<script type="text/javascript">
$(function () {
$(".chzn-select").chosen();
$(".chosen-select").chosen();
});
</script>
</form>
这是服务器端:
protected void Button1_Click(object sender, EventArgs e)
{
List<ListItem> tmpLst = new List<ListItem>();
for (int i = 0; i < chsn.Items.Count; i++)
{
if (chsn.Items[i].Selected)
tmpLst.Add(chsn.Items[i]);
}
}
chsn.Items [i] .Selected始终返回false。是否有更好的方法来获取所选项目?
答案 0 :(得分:2)
问题不在于您的Button1_Click
事件。 (我测试过了)。
问题必须在Page_Load
事件中,其中您将select chsn
与值绑定在一起。确保在!IsPostBack
答案 1 :(得分:1)
Naveen是对的..我只是在回答这个问题,因为我可能不会得到Naveens的观点。
您页面加载事件中的所有内容。 把它放在这个检查下
if(!isPostBack)
{
//here comes the code you have in pageload event.
}