如何在ASP.net中取消事件冒泡?
发布时间:2020-12-15 22:18:38 所属栏目:asp.Net 来源:网络整理
导读:是否可以阻止ItemCommand或控件事件冒泡控制层次结构?我有一个控件,其中包含子用户控件,可能已经或可能没有处理其ItemCommand事件的代码.我想要做的是允许子控件在它已经在其代码隐藏中处理事件的情况下决定不将ItemCommand传递给父控件. 谢谢, 麦克风 解决
是否可以阻止ItemCommand或控件事件冒泡控制层次结构?我有一个控件,其中包含子用户控件,可能已经或可能没有处理其ItemCommand事件的代码.我想要做的是允许子控件在它已经在其代码隐藏中处理事件的情况下决定不将ItemCommand传递给父控件.
谢谢, 麦克风 解决方法
在用户控件类中,重写OnBubbleEvent().如果返回true,则会停止向父控件“冒泡”.
protected override bool OnBubbleEvent(object source,EventArgs args) { //handled return true; //uncomment line below to bubble up (unhandled) //return base.OnBubbleEvent(source,args); } 另一个有点整洁的事情是我在修补这个时发现的,这在某些情况下可能很有用……你可以在控件heirachy中更改“冒泡”的命令名称.在您的子用户控件中,使用OnCommand而不是Onclick. 因此,假设您的用户控件中有一个按钮,请更改以下代码: <asp:button id="mySpecialButton" onClick="mySpecialButton_OnClick" runat="server"> 对此: <asp:Button id="mySpecialButton" CommandName="mySpecialCommand" CommandArgument="myArgument" OnCommand="mySpecialButton_Command" runat="server"/> 那么在代码隐藏中, protected void mySpecialButton_Command(object sender,CommandEventArgs e) { RaiseBubbleEvent(this,new CommandEventArgs("Handled",e)); } 因此,在父控件的ItemCommand处理程序中,您将获得此新命令名称而不是子控件中的原始命令名称,您可以根据需要使用该名称. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 具有EntityDataSource的一个ASP.NET GridView中的两个相关数
- .Net Core微服务入门全纪录(七)——IdentityServer4-授权
- 如何使用ASP.NET MVC项目启动Azure模拟器
- asp.net-mvc – ASP.Net MVC – 视图中的编译器错误
- asp.net – System.Web.HttpException:请求超时
- 如何默认选择一个单选按钮 – asp.net mvc强类型的html助手
- asp.net – 有一个很好的web.config编辑器吗?
- [ASP.net] GridView抓各Field值的方法
- asp.net-mvc – 今天在.NET中实现RESTful架构的最好方法是什
- Pro ASP.NET Core MVC 2翻译计划:第一章
推荐文章
站长推荐
- asp.net-mvc-4 – MVC4 ViewBag或ViewModel还是?
- 如何将我的模型数据(列表)映射到另一个viewmodel
- asp.net确保javascript只加载一次
- asp.net-mvc-3 – 在ASP.NET MVC3中混合基本身份
- asp.net – WebAPI Empty 500错误
- asp.net-mvc – 如何使用ajax get或post在带有参
- asp.net-mvc – 如何在ASP.NET MVC RC1中返回304
- asp.net-mvc-3 – KnockoutJs Observable Arrays
- 向ASP.NET Gridview添加动态列
- 玩转VSCode-完整构建VSCode开发调试环境
热点阅读