存储列表框中的选定项目

时间:2014-05-11 13:00:33

标签: c# asp.net listbox listitem

我似乎无法让我的应用程序存储列表框中的选定项目。

每次运行代码并进行调试时,即使未选择列表框中的选定项目,也会从列表框中选择列表框中的第一项,并存储此项目,但对于已选择的实际项目,将忽略这些项目。如果我在ASP标记中将listitems的所有属性设置为Selected =“false”,则会发生这种情况。

我有一个用于复选框列表的相同代码,它工作正常我看不出为什么这不起作用?

我没有包含Answers类,因为它只是获取并设置属性。

<asp:ListBox runat="server" ID="lbQuestion3" SelectionMode="Multiple" Rows="7">
    <asp:ListItem Value="0" >Dublin</asp:ListItem>
    <asp:ListItem Value="1" >Cork</asp:ListItem>
    <asp:ListItem Value="1" >Waterford</asp:ListItem>
    <asp:ListItem Value="1" >Limerick</asp:ListItem>
    <asp:ListItem Value="0" >Carlow</asp:ListItem>
    <asp:ListItem Value="0" >Galway</asp:ListItem>
    <asp:ListItem Value="0" >Kilkenny</asp:ListItem>
</asp:ListBox>

<br />
<asp:Button ID="btnQuestion4" runat="server" Text="Next Question" OnClick="btnQuestion4_Click"/>

C#代码

protected void btnQuestion4_Click(object sender, EventArgs e)
    {
            Answers question3;

            List<Answers> answers = new List<Answers>();

            foreach (ListItem item in lbQuestion3.Items)
            {
                if (item.Selected == true)
                {
                    question3 = new Answers(item.Text, Convert.ToInt32(item.Value), 0);

                    answers.Add(question3);
                }


            Session["ssAnswerQ3"] = answers;

            Response.Redirect("Question4.aspx");
        }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["ssAnswerQ3"] != null)
            {
                List<Answers> previousAnswers = new List<Answers>();

                previousAnswers = (List<Answers>)Session["ssAnswerQ3"];

                foreach (ListItem item in lbQuestion3.Items)
                {
                    foreach (var item2 in previousAnswers)
                    {
                        if (item2.Answer == item.Text)
                        {
                            item.Selected = true;
                        }
                    }

                }
            }
        }
    }

非常感谢任何帮助。

约翰

0 个答案:

没有答案