gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:09:28 24 4
gpt4 key购买 nike

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

最佳答案

出现此问题是因为动态添加的控件在每次回发时都在再次创建之前被销毁。为了让动态控件在回发中持续存在,您必须在每次页面回发时添加它们。

试试下面的代码。请注意,控件是在 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);
}
}

参见 here

关于c# - 动态创建/加载用户控件只能工作一次!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6715011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com