Pet*_*ras 17 asp.net controls webforms
我有一个非常简单的操作,我尝试将HtmlGenericControl添加到另一个HtmlGenericControl:
protected void Page_Load(object sender, EventArgs e)
{
HtmlGenericControl div = new HtmlGenericControl("div");
HtmlGenericControl p = new HtmlGenericControl("p");
div.Controls.Add(p);//exception occurs
}
Run Code Online (Sandbox Code Playgroud)
仅在调试器中抛出异常 - 页面本身呈现为好像什么都没发生.但是肯定会发生一些事情,因为在更大的代码部分中,控件没有按照它们应该进行渲染.
实际的例外是:
{InnerText = '((System.Web.UI.HtmlControls.HtmlContainerControl)(div)).InnerText' threw an exception of type 'System.Web.HttpException'}
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么会发生这种情况,因为您应该能够以这种方式相互添加控件.
请注意,从第一个答案,我再次尝试使用ID,但它仍然无法正常工作:
我有更多的信息.使用占位符控件作为父级时,没有例外:
protected void Page_Init()
{
PlaceHolder ph = new PlaceHolder();
HtmlGenericControl p = new HtmlGenericControl("p");
ph.Controls.Add(p);//no problem
}
Run Code Online (Sandbox Code Playgroud)
我不正确,请参阅乔恩·亚当斯的评论。
我怀疑这与尚未设置 ID 的控件有关。我可能是错的...但如果这是问题的话,这里是设置 ID 的方法。