使用PlaceHolder动态加载用户控件,为何aspx页面再次提交后用户控件消失?

Namo 2005-02-23 01:38:13
用户控件:uc.ascx(内含按钮AscxButton)
页面文件:a.aspx(内含按钮AspxButton)
流程是这样的:
在a.aspx中点击按钮AspxButton,用户控件能够出现在页面上(如果一直未点击过就不出现),其事件代码为:
AspxButton_Click()
{
UC uc = LoadControl("uc.ascx");
PlaceHolder.Controls.Add(uc);
}

这时用户控件能够准确出现在页面上。当我再按uc.ascx里的AscxButton后,则控件在页面消失。
我在a.aspx的Page_Load()中没写任何代码。

请问如何避免这种情况?我最终是希望即使点击AscxButton后页面上依然能够看到用户控件。
...全文
591 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2005-02-24
  • 打赏
  • 举报
回复
you need to remember to re-load the control upon postback


public bool Loaded
{
get { object o = ViewState["Loaded"];
if (o == null) return false; else return (bool)o; }
set { ViewState["Loaded"] = value;}
}


void LoadYourControl()
{
UC uc = LoadControl("uc.ascx");
PlaceHolder1.Controls.Add(uc);
}

AspxButton_Click()
{
LoadYourControl();
Loaded = true;
}

void Page_Load(object sender, EventArgs e)
{
if (Loaded)
LoadYourControl();
}

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧