【问题标题】:ASP.Net Checkbox in C#C# 中的 ASP.Net 复选框
【发布时间】:2011-12-24 21:24:35
【问题描述】:

好的,所以我开始使用 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;
        }
    }

代码的目标是在屏幕上显示一个复选框。如果选中它,我还想将数字 1 添加到我的列表(选择)中,当我按下按钮时,我希望文本框显示数字 1。如果复选框未选中,我希望从列表中删除数字并当我按下按钮时,我希望它显示“这里没有!”。

问题是,有时有效,有时无效。例如,如果我单击该框,则该按钮将起作用。然后,当我再次单击该按钮时,它会显示“这里什么都没有!”它应该保持为 1。

【问题讨论】:

    标签: c# asp.net checkbox


    【解决方案1】:

    您必须将 AutoPostBack=true 设置为 CheckBox 控件标记,并将该列表保存到 Session 字典中。

    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"];
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-18
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2010-11-25
      • 2018-12-29
      • 2012-10-27
      • 1970-01-01
      相关资源
      最近更新 更多