2012-08-08 79 views
0

我在aspx頁面創建了4個佔位符。我將它們命名爲placeHolder1,placeHolder2,placeHolder3,placeHolder4。如何在循環中動態地將這些內容添加到這些佔位符中?我知道我可以複製四個不同的時間,但我想保存一些代碼並在循環中執行。實際上可以這樣做嗎?如何動態地通過asp.net控件循環?

+1

您可以顯示一些有關的代碼,例如中aspx代碼? – ikh 2012-08-08 14:17:43

回答

1

像這樣的東西應該工作:

for (int i = 1; i <= 4; i++) 
{ 
PlaceHolder myControl = FindControl("placeHolder" + i) as PlaceHolder; 
//Do whatever with control; 
} 
+0

它沒有找到控制它給了我空例外! – HardCode 2012-08-08 14:34:38

+0

Got it! thanx太多了:) – HardCode 2012-08-08 14:36:14

3

您可以遍歷網頁上的所有控件,並找到類型你感興趣的是這樣的:

foreach (Control ctrl in this.Controls) 
{ 
    if (ctrl is ContentPlaceHolder) 
    { 
     ContentPlaceHolder cph = (ContentPlaceHolder)ctrl; 

     if (cph.ID == "placeHolder1") 
     { 
      // do whatever 
     } 
    } 
} 

我沒有測試此代碼,但它提供給廣大關於你如何遍歷你的佔位者的想法。

+0

他不想爲每個單獨的位置添加一個if行iframe – jbkkd 2012-08-08 14:24:06

+0

@jbkkd也許,這種解決方案是一種更一般的方法,它演示瞭如何遍歷類型的控件,其中ID是事後的。如果您有興趣通過其ID定位控件(或控件),最好採用您的解決方案。 – 2012-08-08 14:33:59

+0

事實上你的權利,這就是HardCode所要求的 - 如何用他們的ID來迭代他的四個控件。 – jbkkd 2012-08-08 14:39:41