首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否可以从从asp.net中的BasePage继承的页面取消订阅BasePage事件

我是否可以从从asp.net中的BasePage继承的页面取消订阅BasePage事件
EN

Stack Overflow用户
提问于 2010-08-31 12:13:29
回答 1查看 182关注 0票数 1

我有一个具有所有页面所需的通用功能的BasePage。我在页面基础上定义了一个PreRender()事件。有2-3页不需要此功能。我可以从我的.aspx页面取消订阅BasePage的PreRender()事件吗?我尝试将BasePage强制转换为页面

代码语言:javascript
复制
(PageBase as Page).PreRender -= OnPreRender(new EventArgs());

但它说PageBase是一个类型,但被用作变量。如何实现这一点。请提个建议。

我添加PreRender()事件,如下所示:

代码语言:javascript
复制
public PageBase()
{
    this.PreInit += new EventHandler(PageBase_PreInit);
    this.PreRender += new EventHandler(PageBase_PreRender);


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-31 12:27:53

您的示例看起来很接近。如果你尝试:

代码语言:javascript
复制
base.Page.PreRender -= new EventHandler(Page_PreRender);

这里假设您使用以下命令添加了事件:

代码语言:javascript
复制
base.Page.PreRender += new EventHandler(Page_PreRender);

另一种选择是覆盖BasePage中的OnPreRender方法,并使用protected字段检查是否应该这样做。对于这三个页面,将其设置为false:

代码语言:javascript
复制
    protected bool _useMyCustomPreRender = true;
    protected override void OnPreRender(EventArgs e)
    {
        if (_useMyCustomPreRender)
        {
            // do my logic here
        }
        base.OnPreRender(e);
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3605983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档