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

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

编辑

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

4

1 回答 1

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);        
    }
}

这里

于 2011-07-16T03:36:47.603 回答