首页 > 解决方案 > 如何在不使用javascript的情况下检查动态复选框?

问题描述

所以,我在 acheckbox1中动态添加了modal bootstrap一个CheckedChanged事件,它也("checkbox1.1" "checkbox1.2" "checkbox1.3")动态添加了一些复选框,所以我的问题是,当我postback(在提交或链接按钮上)我怎么知道我checkbox1.1的是否被选中?我实际上可以知道我checkbox1是否被选中,因为我重新创建了每一个控件,postbackcheckbox1.1我不能,因为它总是取决于我checkbox1是否被选中。checkbox1.1有没有办法我可以在不重新创建的情况下获得它postback?(javascript如果可能,不使用)。

我已经尝试过,列表,字典,会话,视图状态,如果我不重新创建控件(checkbox1.1),我无法保存它们,它们会丢失

foreach (DataRow item in dt.Rows)
{
    i++;
    CheckBox chk = new CheckBox();
    chk.Attributes["class"] = "mycheckbox";
    chk.Font.Name = "Tahoma";
    chk.Attributes.Add("runat", "server");
    chk.Text = item[descricao].ToString();

    //If true add checkbox id = checkbox1
    if (divsname.ID == "DadosIdentificacao")
    {
        chk.ID = checkbox + i;
        chk.AutoPostBack = true;
        chk.CheckedChanged += new EventHandler(this.chkEventos);                        
    }
    //Else checkboxid = checkbox1.1
    else
    {
        chk.ID = checkbox + item[descricao].ToString() + i;
    }

    divsname.Controls.Add(chk);
    ListData.Add(chk);
}

我可以得到是否checkbox1被选中,但我的checkbox1.1控制消失了postback

标签: asp.net

解决方案


解决方法不是动态创建我的复选框,而是用我的所有复选框填充Session["list"],然后创建一个新列表List List1 = Session["list"] 作为 List并通过隐藏或显示我的复选框来使用相同的 List1 .


推荐阅读