2012-07-10 28 views
0

我添加一些DIV插入服務器側上的面板,當產生的頁面,並且我添加一個ID爲每一個:用戶控件在回發中需要一個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循環它們。爲什麼?

+0

你從哪裏得到NullException?當你調用Response.Write或之前? – 2GDev 2012-07-10 13:33:19

+0

是的,當我打電話給Response.Write!如果我寫了'if(divInside!= null)Response.Write(divInside.ID);'沒有例外,但當然沒有輸出... – markzzz 2012-07-10 13:37:37

+0

我認爲這很正常...如果你沒有設置ID創建元素比你沒有id時檢索元素... – 2GDev 2012-07-10 13:38:34

回答

2

我猜你NullException當您嘗試閱讀ID,你還沒有設置。

如果您改變了這樣的代碼,你會得到的值:

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

PS:我不知道,如果你有這行代碼:

myPanel.Controls.Add(divContainerInside); 

如果你想了解更多關於網頁控制的知識,你可以閱讀這個articlethis

-1

你不能添加控件使用RESPONSE.WRITE你需要把它添加到頁面的頁面或其他控件的控件集合象下面這樣:

Page.Controls.Add(divInside); 
+1

他並不試圖用Response.Write添加控件... – 2GDev 2012-07-10 13:25:07

相關問題