• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

如何在页面中处理由UserControl引发的事件?

contech 2006-01-09 10:53:12
如标题。
在UserControl中如何将事件传道页面中,由页面作处理,谢谢。
...全文
69 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
楼主想想UserControl.ascx它可能独立运行吗?当然是不行的.
所以,用户控件本身就是由调用它的页面去执行了.
用户控件加载时,会将用户控件本身包含的逻辑与调用它的页面一起加载进来.
如在usercontrol中有一个page_load,调用页面也有page_load,那么,usercontrol的page_load会与页面的page_load一起执行.
回复
zhangweiguo3984 2006-01-09
参考一下:http://www.cnblogs.com/teddyma/archive/2005/05/11/153561.html
回复
contech 2006-01-09
如何将UserControl的事件委托到页面中阿?
能否举个例子?
回复
joecfan 2006-01-09
用委托呗!
回复
另外页面的Page_Load和用户控件的Page_Load好象不是在一起发生的
回复
用户控件的内容可以通过委托来实现 请看下面的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
这是设计器自动生成的委托

如果你想要用户控件的事件被暴露给页面那么你重要在用户控件中公开你需要的事件 然后将委托写入InitializeComponent就可以了

比如:
public class MyControl : Control {
private EventHandler onMyEvent;//自定义事件
public event EventHandler MyEvent {
add {
onMyEvent += value;
}
remove {
onMyEvent -= value;
}
}
protected virtual void OnMyEvent(EventArgs e) {
if (MyEvent != null) {
MyEvent(this, e);
}
}
}

然后你就可以象用其他控件一样使用他了

<my:MyControl id="mc" runat="server" OnMyEvent="yourprocess"/>
回复
wangehuai 2006-01-09
不懂,学习!
回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2006-01-09 10:53
社区公告
暂无公告