关于WEB用户控件的自定义事件在界面不能触发问题

clj2201 2009-04-09 10:52:34
小弟在一个WEB用户控件中有一个Button,同时定义了一个事件,想在界面上用这个用户控件时使用定义的事件,WEB控件如下

private readonly object BtnAddClickObject = new object();
public event EventHandler BtnAddClick
{
add { this.Events.AddHandler(BtnAddClickObject, value); }
remove { this.Events.RemoveHandler(BtnAddClickObject, value); }
}

protected void BtnAdd_Click(object sender, EventArgs e)
{
if (this.Events[BtnAddClickObject] != null)
((EventHandler)this.Events[BtnAddClickObject])(sender, e);
}


WEB用户控件的Html代码如下


<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MenuControl.ascx.cs" Inherits="UserControl_MenuControl" %>
<asp:Button ID="BtnAdd" runat="server" Text="增 加" OnClick="BtnAdd_Click" />


在界面上应用时在Page_Load中注册事件

if (!IsPostBack)
{
MenuControl1.BtnAddClick+=new EventHandler(MenuControl1_BtnAddClick);
}




但是,为什么不能触发MenuControl1_BtnAddClick这个事件呢????
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rail100 2009-04-10
  • 打赏
  • 举报
回复
在界面上应用时在Page_Init中注册事件
yh7272hy 2009-04-10
  • 打赏
  • 举报
回复
把MenuControl1.BtnAddClick+=new EventHandler(MenuControl1_BtnAddClick);
放到if (!IsPostBack)之外。
helimin19 2009-04-10
  • 打赏
  • 举报
回复
if (!IsPostBack)
{
MenuControl1.BtnAddClick+=new EventHandler(MenuControl1_BtnAddClick);
}

在回傳頁面時:創建Page對象時沒有給你的MenuControl1控件加BtnAddClick事件了
像事件這樣的定義都必須每次實例化時都應該有了
jietuan 2009-04-10
  • 打赏
  • 举报
回复
把MenuControl1.BtnAddClick+=new EventHandler(MenuControl1_BtnAddClick);
放到if (!IsPostBack)之外。
fly_to_sky 2009-04-09
  • 打赏
  • 举报
回复
可能是页面post了吧

62,267

社区成员

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

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

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

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