我有一个BasePage,它具有所有页面所需的通用功能。我在页面基础上定义了一个PreRender()事件。有2-3页不需要此功能。我可以从我的.aspx页面取消订阅BasePage的PreRender()事件。我尝试将BasePage转换为Page
(PageBase as Page).PreRender -= OnPreRender(new EventArgs());
但它说PageBase是一种类型,但用作变量。如何实现这一目标。请建议。
我正在添加PreRender()事件,如下所示:
public PageBase()
{
this.PreInit += new EventHandler(PageBase_PreInit);
this.PreRender += new EventHandler(PageBase_PreRender);
}
答案 0 :(得分:2)
你的例子看起来很近。如果你尝试怎么办?
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);
}