2013-05-27 25 views
2

我有更新另一個用戶控件中的用戶控件的問題。如何在C#中的其他UserControl中更新UserControl?

示例代碼:

UserControl MyCart1 = (UserControl)Page.FindControl("MyCart1"); 
UpdatePanel up_shoppingcart = (UpdatePanel)MyCart1.FindControl("up_shoppingcart"); 
        up_shoppingcart.Update(); 

這段代碼顯示對象引用不設置到對象的實例錯誤

+0

您使用的母版? –

+2

爲什麼upvote?我經常看到這一點,沒有明顯的原因。 – David

+0

是的,我正在使用母版頁 –

回答

1
  1. 您需要確定三個行代碼,你提供,引發異常。這可以使用調試器輕鬆完成。

  2. FindControl方法只搜索直接的子控件。您可以編寫它的遞歸版本來進行更深入的搜索。

public Control FindControlDeep(Control parent, string id) 
{ 
    Control result = parent.FindControl(id); 
    if (result == null) 
    { 
     for (int iter = 0; iter < parent.Controls.Count; iter++) 
     { 
      result = FindControlDeep(parent.Controls[iter], id); 
      if (result != null) 
       break; 
     } 
    } 
    return result; 
}