2011-12-02 29 views
0

我試圖訂閱在從調用父級單獨的radwindow中啓動的用戶控件的保存按鈕事件。但我得到的對象沒有初始化錯誤,我知道爲什麼但我錯過了什麼?在另一個窗口中訂閱另一個ascx的ascx事件

更新:我發現我的錯誤,但它看來,如果(this.SaveEvent!= NULL)在ControlBase總是空

家長控制代碼:

public partial class myControl : ControlBase 
{ 
    private myChildControl __myChildControl; 

    private void myControl_PreRender(object sender, EventArgs e) 
    { 
     // error occurs here 
     //this.__myChildControl.SaveEvent += new myChildControl.SaveEventHandler(__myChildControl_SaveEvent); 
     // found my error 
     this.SaveEvent += new myChildControl.SaveEventHandler(__myChildControl_SaveEvent); 
    } 

    private void __myChildControl _SaveEvent(object sender, CustomEventArgs e) 
    { 
     this.Label1.Text = e.CustomEventArg1.ToString(); 
     this.Label2.Text = e.CustomEventArg2.ToString(); 
    } 
} 

兒童控制在RadWindow推出:

public partial class myChildControl : ControlBase 
{ 
    protected void btnSave_OnClick(object sender, EventArgs e) 
    { 
     CustomEventArgs _cea = new CustomEventArgs {CustomEventArg1 = 123, CustomEventArg2 = 12}; 
     callBaseMethod(_cea); 
    } 
} 

ControlBase代碼:

public class ControlBase : UserControl 
{ 
    public event CustomEventHandler SaveEvent; 
    public delegate void CustomEventHandler(object sender, CustomEventArgs e); 

    internal void callBaseMethod(CustomEventArgs cea) 
    { 
     if (this.SaveEvent!= null) 
     { 
      this.SaveEvent(this, cea); 
     } 
    } 
} 

CustomEventArgs類:

public class CustomEventArgs : EventArgs 
{ 
    public int CustomEventArgs1 { get; set; } 
    public int CustomEventArgs2 { get; set; } 

} 

回答

1

這是不可能在代碼隱藏:在RadWindow乾脆提出了一個獨立的ASPX/ASCX頁單獨鏈接到主頁通過JavaScript。

你需要做的是在JavaScript中處理RadWindow OnClientClose事件,然後在父頁面中執行相應任務。

相關問題