2010-02-23 59 views
4

asp.net頁面也是一個控件。 如何在頁面控制中訪問子控件?頁面子控件

this.page.? 
+0

在我的回答如下提供遞歸的例子。採取從這裏:http://www.west-wind.com/Weblog/posts/5127.aspx – Josh 2010-02-23 19:17:06

回答

3

您可以通過Controls Collection

Page.Controls 

Recursive FindControls from Rick Strahl's Blog

public static Control FindControlRecursive(Control Root, string Id) 
{ 
    if (Root.ID == Id) 
     return Root; 

    foreach (Control Ctl in Root.Controls) 
    { 
     Control FoundCtl = FindControlRecursive(Ctl, Id); 
     if (FoundCtl != null) 
      return FoundCtl; 
    } 

    return null; 
} 

訪問要小心這個但是。 ..這不是你想在循環或任何東西中使用的方法。

5

試試這個:

Control childControl = Page.FindControl("YourControlsID"); 
+2

小心這種方法,但因爲它不遞歸到子控件。您需要確保您正在查找的控件實際上是頁面的子項,而不是頁面中的面板或其他子控件的子項。 – 2010-02-23 19:07:15

+0

+1,注意到這隻適用於一階子控件及其兄弟,也可能很重要。如果你想找到嵌套控件,你需要使用遞歸。 – Josh 2010-02-23 19:08:05

+0

你能提供遞歸代碼嗎? 012.Page.Contorls是否包含first order children? – 2010-02-23 19:11:15