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

我可以从asp.net中从BasePage继承的页面取消订阅BasePage事件吗,asp.net,Asp.net,我有一个具有所有页面所需的通用功能的基本页面。我在page base上定义了一个PreRender()事件。有2-3页不需要此功能。我可以从.aspx页面取消订阅BasePage的PreRender()事件吗。我试着一页一页地转换BasePage (PageBase as Page).PreRender -= OnPreRender(new EventArgs()); 但它说PageBase是一种类型,但用作变量。如何做到这一点。请建议 我正在添加PreRender()事件,如下所示: pub

我有一个具有所有页面所需的通用功能的基本页面。我在page base上定义了一个PreRender()事件。有2-3页不需要此功能。我可以从.aspx页面取消订阅BasePage的PreRender()事件吗。我试着一页一页地转换BasePage

(PageBase as Page).PreRender -= OnPreRender(new EventArgs());
但它说PageBase是一种类型,但用作变量。如何做到这一点。请建议

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

public PageBase()
{
    this.PreInit += new EventHandler(PageBase_PreInit);
    this.PreRender += new EventHandler(PageBase_PreRender);


}

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

base.Page.PreRender -= new EventHandler(Page_PreRender);
这假定您使用以下方式添加了事件:

base.Page.PreRender += new EventHandler(Page_PreRender);
另一个选项是重写BasePage中的OnPreRender方法,并使用受保护的字段检查是否应该这样做。对于这三个页面,将其设置为false:

    protected bool _useMyCustomPreRender = true;
    protected override void OnPreRender(EventArgs e)
    {
        if (_useMyCustomPreRender)
        {
            // do my logic here
        }
        base.OnPreRender(e);
    }

您是否可以不继承
页面
,而继承
基本页面
?基本页面上定义了所有页面都需要的其他功能。所以无法从页面继承。可能您需要一个包含三个类的继承树!