0

当页面生成时,我将一些 div 添加到服务器端的面板中,并为每个面板添加一个 ID:

HtmlGenericControl divContainerInside = new HtmlGenericControl("div");
divContainerInside.ID = "inside_" + m_oIDCategoria + "_" + numero;

然后,在回发时(重新创建它们之后),我循环它们:

foreach (HtmlGenericControl divInside in myPanel.Controls.OfType<HtmlGenericControl>())
{
    Response.Write(divInside.ID);
}

一切正常!但是,如果我divContainerInside.ID在生成它时删除它,我会得到一个 NullException 循环它们。为什么?

4

2 回答 2

2

我猜当您尝试读取尚未设置的 ID 时,您会收到 NullException。

如果您像这样更改代码,您将获得以下值:

foreach (HtmlGenericControl divInside in myPanel.Controls.OfType<HtmlGenericControl>())
{
    Response.Write(divInside.ClientID);
}

PS:不知道你有没有这行代码:

myPanel.Controls.Add(divContainerInside);

如果您想了解有关 Web 控件的更多信息,可以阅读这篇文章.

于 2012-07-10T13:39:40.013 回答
-1

您不能使用 response.Write 将控件添加到页面中,您需要将其添加到 Pages 或其他控件控件集合中,如下所示:

Page.Controls.Add(divInside);
于 2012-07-10T13:23:27.137 回答