2011-12-02 8 views
0

呼び出し元の親とは別のラドウィンドウで起動されるユーザーコントロールの保存ボタンイベントを購読しようとしています。しかし私は初期化されたエラーではないオブジェクトを取得しています、私は理由を知っていますが、何が欠けていますか?別のウィンドウで別のascxのascxのイベントにサブスクライブする

アップデート:私は私の誤りを見つけたが、ControlBase中(this.SaveEvent = nullが!)常にnullである場合と思わ

親制御コード:RadWindowに開始

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(); 
    } 
} 

子コントロール:

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だけではjavascriptを介してメインページにリンクされている全く別のASPX/ascxファイルのページが表示されます。

JavaScriptでRadWindow OnClientCloseイベントを処理してから、適切なタスクを実行する親ページで何かを起動します。

関連する問題