これで、チェックボックスにn個のチェックボックスが付いています。ボックスにチェックを入れるたびに、その番号がリストに追加されます(選択したもの)。チェックボックスをオフにすると、リストから削除します。それから私がボタンを押すと、リストをテキストボックスに表示したい。ここに私のコードは次のとおりです。それは、私はそれがしたいように動作しません言うことC#チェックボックスリスト
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();
セイリングインデックスが範囲外です。しかし、私が数値をデバッグするとき、リストに適切に割り当てられているようです。
をテストしました。私は家に帰るときこの解決策を見ていきます。 –