【问题标题】:Subscribing to an event of a ascx of another ascx in a different window在不同窗口中订阅另一个 ascx 的 ascx 事件
【发布时间】:2011-12-02 21:57:32
【问题描述】:

我正在尝试订阅用户控件的保存按钮事件,该用户控件在与调用父级不同的 radwindow 中启动。但我收到对象未初始化错误,我知道为什么但我错过了什么?

更新:我发现了我的错误,但似乎 ControlBase 中的 if (this.SaveEvent!= null) 始终为 null

家长控制代码:

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

控制基代码:

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

}

【问题讨论】:

    标签: c# asp.net user-controls delegates event-handling


    【解决方案1】:

    这在代码隐藏中是不可能的:RadWindow 完全呈现一个单独的 aspx/ascx 页面,该页面仅通过 javascript 链接到主页。

    您需要做的是在 javascript 中处理 RadWindow OnClientClose 事件,然后在执行相应任务的父页面中触发一些东西。

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多