2010-02-23 78 views
0

我有用户控件继承了一个基本控件类,并且这些用户控件是使用LoadControl方法加载的,我似乎无法弄清楚如何将用户控件的事件引发到以这种方式动态加载的页面。如何将事件从动态加载用户控件引发到页面?

谢谢

这是基本用户控件类中的委托和事件。


public delegate void SomeChangeEventHandler(object sender 
, SomeChangeEventArgs e); 

public event SomeChangeEventHandler SomeChangeEvent; 

public virtual void OnSomeChanged(SomeChangeEventArgs e) 
{ 
    if (SomeChangeEvent != null) 
    { 
     SomeChangeEvent(this, e); 
    } 
}

回答

2

您可以手动添加事件处理程序是这样的:

MyUserControl myControl1 = (MyUserControl)LoadControl("ThisControl.ascx.cs"); 
myControl1.DataBinding += new System.EventHandler(this.MyControl_DataBinding); 
+0

我想我不明白尤尔说:我可以补充当时的事件处理程序我加载控制? – OutOFTouch 2010-02-23 18:44:07

+0

我修改了我的答案,以包含评论的答案。 – 2010-02-23 18:55:49

+0

这很接近,但我的事件是在控制基类中,并且页面无法看到该方法,因为该控件只是该页面的通用UserControl,因此它看不到该自定义事件。我是否需要先将其转换为正确类型? – OutOFTouch 2010-02-23 20:51:46

相关问题