c# - 以编程方式在 ASP.NET 中添加用户控件

标签 c# asp.net user-controls

我有一个用户控件需要在单击按钮时加载子控件。 问题是它必须向另一个类请求控制。

所以在按钮单击事件中,我调用函数来获取我的控件,并将其添加到页面中,如下所示:

UserControl ctrl = ExampleDataProvider.GetControl(some params...);
myDetailPane.Controls.Add(ctrl);

GetControl 方法如下所示:

public static UserControl GetControl(some params...)
        {
            ExampleDetailPane ctrl = new ExampleDetailPane();
            ctrl.Value = "12";
            ctrl.Comment = string.Empty;
            return ctrl;
        }

由于页面的生命周期,这不起作用 - 子控件的 Page_Load 被触发并且其控件为空。

我有点知道我的方法是错误的以及为什么,但不知道解决它的最佳方法!谁能帮忙?

最佳答案

必须在每次回发时重新创建动态控件,这 Article是关于如何持久化动态控件及其状态的一个很好的链接。

关于c# - 以编程方式在 ASP.NET 中添加用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050121/

相关文章:

c# - 为什么 Nhibernate.Linq 会抛出异常 "The method Compareto is not implemented"?

c# - WPF 绑定(bind)到自定义 DependencyProperty - IsChecked 有时是相反的属性值

c# - 重构 ASP.NET——两个控件都继承自 Web.UI.UserControl 并具有相同的属性

c# - ASP.NET 更新面板 : Make browser "back" button return to *last* version of the page

c# - 为什么下面的泛型方法调用不需要类型?

c# - IDisposable - 在没有外部引用的情况下在类里面处理什么?

c# - 使用 C# MEF 将其他属性导入元数据

c# - 如何安全地读取 ASP.NET 中的流?

c# - 在 C# 中使用组合键触发按钮单击事件

c# - .NET 中具有深度继承的类的内存分配