У меня очень простая операция, когда я пытаюсь добавить 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'}
Я не могу понять, почему это происходит, поскольку вы должны иметь возможность добавлять элементы управления друг к другу таким образом.
Обратите внимание, что из первого ответа я попытался снова с идентификаторами, но он все еще не работает:
У меня есть дополнительная информация. При использовании элемента управления Placeholder в качестве родителя исключение не существует:
protected void Page_Init()
{
PlaceHolder ph = new PlaceHolder();
HtmlGenericControl p = new HtmlGenericControl("p");
ph.Controls.Add(p);//no problem
}