选择选择的项目返回False

时间:2015-06-16 06:43:00

标签: c# asp.net html-select jquery-chosen

我试图从服务器端选择的选择中获取所选项目。

这是我的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。是否有更好的方法来获取所选项目?

2 个答案:

答案 0 :(得分:2)

问题不在于您的Button1_Click事件。 (我测试过了)。

问题必须在Page_Load事件中,其中您将select chsn与值绑定在一起。确保在!IsPostBack

下绑定HTMLSelect

答案 1 :(得分:1)

Naveen是对的..我只是在回答这个问题,因为我可能不会得到Naveens的观点。

您页面加载事件中的所有内容。 把它放在这个检查下

if(!isPostBack)
{
//here comes the code you have in pageload event.
}