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

contech 2006-01-09 10:53:12
如标题。
在UserControl中如何将事件传道页面中,由页面作处理,谢谢。
...全文
91 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼主想想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
  • 打赏
  • 举报
回复
不懂,学习!

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧