我有一個非常簡單的操作,我嘗試將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
}
已經試過,但仍然會拋出異常 – Petras
不正確。 ID僅用於外部代碼來引用對象。在內部,渲染過程遍歷子控件,並在必要時自動分配ID。 –