2012-07-20 135 views
0

我正在一個asp.net項目,我有一個主要的ascx控制由兩個RadSpliters分開。在加載main.ascx時,應用程序正在加載兩個其他控件,即control1.ascx和control2.ascx。在control1中我有一個樹視圖,並在樹視圖的選定節點上,我想重新加載control2.ascx。有沒有辦法做到這一點。下面我粘貼我正在使用的代碼,但不工作。有任何幫助或建議嗎?刷新或添加從另一個ascx控制ascx控制

public partial class Control1: System.Web.UI.UserControl 
{ 
     protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 
    { 
     BrowseProject b = new BrowseProject(); 
     b.load(); 
    } 




public partial class MainControl : System.Web.UI.UserControl 
    { 
      public void load() 
     { 
       Control codeEditor = Page.LoadControl("Control2.ascx"); 
      PlaceHolder4.Controls.Clear(); 
      PlaceHolder4.ID = "PlaceHolder4"; 
      PlaceHolder4.Controls.Add(codeEditor); 

     } 

回答

0
public interface IReload{ 
    public void reload(); 
} 

public partial class Control2: System.Web.UI.UserControl, IReload 
{ 

} 

public partial class Control1: System.Web.UI.UserControl 
{ 
    IReload _r; 

    public IReload setReload 
    { 
     set { _r = value; } 
    } 


    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 
    { 
     BrowseProject b = new BrowseProject(); 
     b.load(); 
     if(_r != null){ 
      _r.reload(); 
     } 
} 

public partial class MainControl : System.Web.UI.UserControl 
{ 
     public void load() 
    { 
     Control codeEditor = Page.LoadControl("Control2.ascx"); 
     PlaceHolder4.Controls.Clear(); 
     PlaceHolder4.ID = "PlaceHolder4"; 
     PlaceHolder4.Controls.Add(codeEditor); 

     c.setReload(codeEditor); 
    } 
+0

什麼類型是線c.setReload(codeEditor)對象C; – user1292656 2012-07-20 10:04:23

+0

哦對不起。嘗試c.setReload((IReload)codeEditor); – user1519979 2012-07-20 10:14:05

+0

是的,但什麼類型的C? Moreovr我得到一個setReload方法錯誤,說不一致的可訪問性:屬性類型'。'比屬性更難以訪問 – user1292656 2012-07-20 10:20:28