我有一个具有所有页面所需的通用功能的BasePage。我在页面基础上定义了一个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);
}发布于 2010-08-31 12:27:53
您的示例看起来很接近。如果你尝试:
base.Page.PreRender -= new EventHandler(Page_PreRender);这里假设您使用以下命令添加了事件:
base.Page.PreRender += new EventHandler(Page_PreRender);另一种选择是覆盖BasePage中的OnPreRender方法,并使用protected字段检查是否应该这样做。对于这三个页面,将其设置为false:
protected bool _useMyCustomPreRender = true;
protected override void OnPreRender(EventArgs e)
{
if (_useMyCustomPreRender)
{
// do my logic here
}
base.OnPreRender(e);
}https://stackoverflow.com/questions/3605983
复制相似问题