2011-09-26 31 views
2

私はネストされたWebユーザーコントロールを持っています。メインWebユーザーコントロール私はページ上で使用しましたが、今は内部Webユーザーコントロールとそのイベント内のコントロールにアクセスしたいと思います。 この問題では、どんな体でも私を助けてくれるでしょうか?ネストされたWebユーザーコントロール要素にアクセス

答えて

0

親のユーザーコントロールで、子コントロールへの参照を公開するか、またはプロパティを使用してそのプロパティを公開します。例えば

public partial class ParentControl : UserControl 
{ 
    ... 
    // Expose the whole child control 
    public ChildControl MyChild 
    { 
     get { return this.theIdOfTheChildControl; } 
    } 

    ... 

    // or expose specific properties 
    public string MyChildText 
    { 
     get { return this.theIdOfTheChildControl.Text; } 
     set { this.theIdOfTheChildControl.Text = value; } 
    } 
} 
0

は、このメソッドは、すべてのコントロールのリストを返します。この方法

 private List<Control> GetAllNestedUserControl(Control ph) 
    { 
     List<Control> Get = new List<Control>(); 
     foreach (var control in ph.Controls) 
     { 
      if (control is UserControl) 
      { 
       UserControl uc = control as UserControl; 
       if (uc.HasControls()) 
       { 
        Get = GetAllNestedUserControl(uc); 

       } 
      } 
      else 
      { 
       Control c = (Control)control; 
       if (!(control is LiteralControl)) 
       { 
        Get.Add(c); 
       } 
      } 
     } 
     return Get; 
    } 

を試し、その後uは

 List<Control> Get = GetAllNestedUserControl(ph); 
     Label l = (Label)Get.Find(o => o.ID == "lblusername"); 
     l.Text = "changed from master"; 
をしたいコントロールを取得するには次のようにします
関連する問題