C# C中的ASP.Net复选框#

C# C中的ASP.Net复选框#,c#,asp.net,checkbox,C#,Asp.net,Checkbox,好的,我开始用C#在ASP.Net中编程。我正在尝试一个非常简单的过程,但它是非常错误的。因此,我有以下ASP代码: <asp:Button ID="Button1" runat="server" Text="Show Numbers" onclick="Button1_Click1" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <

好的,我开始用C#在ASP.Net中编程。我正在尝试一个非常简单的过程,但它是非常错误的。因此,我有以下ASP代码:

<asp:Button ID="Button1" runat="server" Text="Show Numbers" onclick="Button1_Click1" />
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:CheckBox ID="CheckBox1" runat="server" 
            oncheckedchanged="CheckBox1_CheckedChanged" />

然后我有以下C#代码:

    int i = 0;
    List<int> Chosen = new List<int>();

    public void Page_Load(object sender, EventArgs e)
    {


    }
    public void Button1_Click1(object sender, EventArgs e)
    {
        if (i == 0)
        {
            TextBox1.Text = "Nothing here!";
        }
        else if (i == 1)
        {
            TextBox1.Text = Chosen[0].ToString();
        }
    }
    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (CheckBox1.Checked == true)
        {
            Chosen.Add(1);
            i++;
            CheckBox1.Checked = true;
        }
        else if (CheckBox1.Checked == false)
        {
            Chosen.Remove(1);
            i--;
            CheckBox1.Checked = false;
        }
    }
inti=0;
所选列表=新列表();
公共无效页面加载(对象发送方,事件参数e)
{
}
公共无效按钮1\u单击1(对象发送者,事件参数e)
{
如果(i==0)
{
TextBox1.Text=“这里什么都没有!”;
}
else如果(i==1)
{
TextBox1.Text=已选择[0]。ToString();
}
}
受保护的无效复选框1\u CheckedChanged(对象发送方,事件参数e)
{
if(CheckBox1.Checked==true)
{
选择。添加(1);
i++;
CheckBox1.Checked=true;
}
else if(CheckBox1.Checked==false)
{
选择。移除(1);
我--;
CheckBox1.Checked=false;
}
}
代码的目标是在屏幕上有一个复选框。如果选中,我还想将数字1添加到我的列表(已选择),当我按下按钮时,我希望文本框显示数字1。如果复选框被取消选中,我希望号码从列表中删除,当我按下按钮时,我希望它显示“此处无任何内容!”


问题是,有时有效,有时无效。例如,如果我单击该框,则该按钮将起作用。然后,当我再次单击按钮时,它会显示“此处无任何内容!”它应保持为1。

您必须将复选框控件标记设置为
AutoPostBack=true
,并将该列表保存到
会话中

List<int> Chosen;

public void Page_Load(object sender, EventArgs e)
{
  if(Sesstion["Chosen"]==null)
    {
      Session["Chosen"]=new List<int>();
    }
  Chosen = (List<int>)Session["Chosen"];
}
选择列表;
公共无效页面加载(对象发送方,事件参数e)
{
if(Sesstion[“selected”]==null)
{
会话[“已选择”]=新列表();
}
已选择=(列表)会话[“已选择”];
}

您必须将
AutoPostBack=true
设置为复选框控件标记,并将该列表保存到
会话中

List<int> Chosen;

public void Page_Load(object sender, EventArgs e)
{
  if(Sesstion["Chosen"]==null)
    {
      Session["Chosen"]=new List<int>();
    }
  Chosen = (List<int>)Session["Chosen"];
}
选择列表;
公共无效页面加载(对象发送方,事件参数e)
{
if(Sesstion[“selected”]==null)
{
会话[“已选择”]=新列表();
}
已选择=(列表)会话[“已选择”];
}