动态创建/加载用户控件只能工作一次!

Kas*_*hef 4 c# asp.net webforms dynamically-generated

protected void addMoreDay_btn_Click(object sender, EventArgs e)
        {
            Control OneMoreDay = LoadControl("~/controls/Days/DayAdd.ascx");
            Days_div.Controls.Add(OneMoreDay);
        }
Run Code Online (Sandbox Code Playgroud)

我将我的userControl动态加载到div元素..但问题是它只能运行一次!..我的意思是我单击addMoreDay_btn按钮,它工作,然后我尝试再次单击它不会创建我的控件的另一个实例!

编辑

我认为它可以工作,但它不会保存最后创建的..它只是用新创建的控件替换它..但我仍然不知道如何解决这个问题!= S

Nak*_*nch 5

之所以出现此问题是因为动态添加的控件在每次回发之前都会被再次创建.为了在回发中保持动态控件,每次页面回发时都必须添加它们.

请尝试以下代码.请注意,控件正在Page_Init方法中添加:

protected void addMoreDay_btn_Click(object sender, EventArgs e)
{
    Control OneMoreDay = LoadControl("~/controls/Days/DayAdd.ascx");
    Days_div.Controls.Add(OneMoreDay);
    Session["MyControl"] += 1
}


protected void Page_Init(object sender, EventArgs e)
{
    for (int i = 1; i <= (int)Session["MyControl"]; i++) {
        Control OneMoreDay = LoadControl("~/controls/Days/DayAdd.ascx");
        Days_div.Controls.Add(OneMoreDay);        
    }
}
Run Code Online (Sandbox Code Playgroud)

看到这里