asp.net – 你可以添加一个HtmlGenericControl的子控件吗?

前端之家收集整理的这篇文章主要介绍了asp.net – 你可以添加一个HtmlGenericControl的子控件吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单的操作,我尝试添加一个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
}

仅在调试器中抛出异常 – 页面本身呈现为没有发生任何事情。然而,确实发生了一些事情,因为在较大部分的代码中,控件没有按照应用程序呈现。

实际例外是:

{InnerText = '((System.Web.UI.HtmlControls.HtmlContainerControl)(div)).InnerText' threw an exception of type 'System.Web.HttpException'}

我不明白为什么会发生这种情况,因为你应该能够以这种方式相互添加控件。

请注意,从第一个答案中,我再次尝试使用ID,但仍然无法正常工作:

我有更多的信息。
当使用占位符控件作为父级时,也不例外:

protected void Page_Init()
{
  PlaceHolder ph = new PlaceHolder();
  HtmlGenericControl p = new HtmlGenericControl("p");

  ph.Controls.Add(p);//no problem
}

解决方法

“An exception is thrown in the debugger only – the page itself renders
as though nothing had happened.”

没关系,如果有子控件,InnerText将无法正常工作这是设计的,因为它不想渲染整个层级的控件在当时的各种性能,生命周期和副作用的原因。

“… something definitely does happen,as in a larger portion of code,
controls are not being rendered as they should.”

这意味着什么?什么是在代码的“较大部分”中不正确地呈现?我猜这是其他地方的一个问题,与你在这里的问题无关。

所以我觉得你没事。忽略父控件中InnerText中的异常。您需要询问有关您的代码“较大部分”的任何问题的新问题。

原文链接:https://www.f2er.com/aspnet/252241.html

猜你在找的asp.Net相关文章