Che*_*het 4 c# asp.net user-controls controls pageload
我有一个ASPX页面,声明了占位符控件.
在Codebehind中,我创建了一个UserControl,并将其添加到占位符中.
protected void Page_Load(object sender, EventArgs e)
{
UserControl uc = new ChartUserControl();
myForm.Controls.Add(uc);
}
Run Code Online (Sandbox Code Playgroud)
UserControl反过来有一个占位符,但是当我这样做时,在Page_Load(对于UserControl):
protected void Page_Load(object sender, EventArgs e)
{
WebControl x = new WebControl();
userControlPlaceholder.Controls.Add(x);
}
Run Code Online (Sandbox Code Playgroud)
它为我提供了无处不在的"对象引用未设置为对象的实例"异常.
我试过通过调用构造函数来强制实例化,但这让我陷入了其他麻烦.任何帮助,将不胜感激.
我自己花了4个小时.
问题是你正在创建用户控件
ChartUserControl chart = new ChartUserControl();
Run Code Online (Sandbox Code Playgroud)
但你必须使用LoadControl:
ChartUserControl chart =
(ChartUserControl)LoadControl("~/path/to/control/ChartUserControl.ascx");
Run Code Online (Sandbox Code Playgroud)
显然,LoadControl初始化用户控件,以便它的PlaceHolders(我会假设,它包含的其他控件)在使用它们时不会为null.
归档时间: |
|
查看次数: |
1995 次 |
最近记录: |