C # Checkboxlist

Хорошо, у меня есть список флажков с n флажками. Каждый раз, когда я устанавливаю флажок, я хочу, чтобы этот номер добавлялся в список (Выбрано). Когда флажок снят, я хочу удалить его из списка. Затем, когда я нажимаю кнопку, я хочу отобразить список в текстовом поле. Вот мой код:

public partial class _Default : System.Web.UI.Page
{
    List<int> Chosen = new List<int>();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Chosen"] == null)
        {
            Session["Chosen"] = new List<int>();
        } 

        Chosen = (List<int>)Session["Chosen"];

        for (int i = 0; i < Numbers.Items.Count; i++)
        {
            if (Numbers.Items[i].Selected) { Chosen.Add(i + 1); }
            else { Chosen.Remove(i + 1); }
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (var i in Chosen)
        {
            TextBox1.Text = Chosen[i].ToString();
        }
    }
}

Излишне говорить, что он работает не так, как я хочу. Когда я выбираю 1 и нажимаю кнопку, в поле записывается 1, но если я снимаю выделение и нажимаю кнопку, там остается 1. Также, если я выберу любое число, кроме 1, я получаю сообщение об ошибке в этой строке:

TextBox1.Text = Chosen[i].ToString();

Указание индекса вне допустимого диапазона. Тем не менее, когда я отлаживаю, кажется, что числа правильно распределяются по списку.

0
задан Emerica. 18 January 2012 в 16:03
поделиться