Хорошо, у меня есть список флажков с 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();
Индекс высказывания вне диапазона. Тем не менее, когда я отлаживаю, числа, кажется, распределяются по списку должным образом.