动态加载用户控件 - 回发问题

发布于 2024-12-11 08:17:46 字数 415 浏览 0 评论 0原文

我试图在 aspx 页面上动态加载用户控件,但是它可以工作,但我遇到回发问题?我在用户控件上有一个图像按钮,我想显示图像,但是当我单击按钮时,页面刷新并且不显示图像?我在 aspx 页面和后端代码上有一个占位符,我有这个:

 protected void Page_Load(object sender, EventArgs e)
 {      

     if (!IsPostBack)
     {
            Control uc = Page.LoadControl("~/UserControls/Mycontrol.ascx");
            placeholder1.Controls.Add(uc);

     }
 }

我需要在 page_preinit 或 page_init 中执行某些操作吗?

Im trying to load a usercontrol dynamically on a aspx page however it works but i get postback issues?? I have a image button on usercontrol which I want to show a image however when i do click on button the page refreshes and does not show image?. I have a placeholder on aspx page and backend code i have this :

 protected void Page_Load(object sender, EventArgs e)
 {      

     if (!IsPostBack)
     {
            Control uc = Page.LoadControl("~/UserControls/Mycontrol.ascx");
            placeholder1.Controls.Add(uc);

     }
 }

Do i need to do something in page_preinit or page_init ??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青巷忧颜 2024-12-18 08:17:46

您应该始终在每次回发时重新加载 Page_init 上的用户控件。

You should always reload the user control on the Page_init on each post back.

╰◇生如夏花灿烂 2024-12-18 08:17:46

添加到页面的动态控件必须在每次回发时添加,而不仅仅是第一个回发。删除 !IsPostBack 条件。其次,它们必须在 init 或 preinit 期间添加,因为这样,视图状态将被正确捕获和恢复(ASP.NET 在 init 和 load 事件之间恢复视图状态)。

Dynamic controls added to the page must be added on every postback, not just the first one. Remove the !IsPostBack condition. Secondly, they have to be added during init or preinit, because that way, viewstate will be captured and restored properly (ASP.NET restores viewstate between init and load events).

心房敞 2024-12-18 08:17:46

给控件一个ID,并在Page_init中加载控件

uc.ID = "your id";

Give the control an ID and also load the control in Page_init

uc.ID = "your id";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文