Могу ли я отменить подписку на событие BasePage со страницы, которая наследуется от BasePage в asp.net

У меня есть BasePage с общими функциями, необходимыми для всех страниц. Я определил событие PreRender () на базе страницы. Есть 2-3 страницы, которые не требуют этой функциональности. Могу ли я отменить подписку на событие PreRender () BasePage со своей страницы .aspx. Я пытался привести 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);


}
1
задан Rohit Raghuvansi 31 August 2010 в 04:44
поделиться

1 ответ

Ваш пример выглядит близко. Что, если вы попробуете:

base.Page.PreRender -= new EventHandler(Page_PreRender);

Это предполагает, что вы добавили событие, используя:

base.Page.PreRender += new EventHandler(Page_PreRender);

Другой вариант — переопределить метод OnPreRender в вашей базовой странице и использовать защищенное поле, чтобы проверить, нужно ли это делать. Для трех страниц установите значение false:

    protected bool _useMyCustomPreRender = true;
    protected override void OnPreRender(EventArgs e)
    {
        if (_useMyCustomPreRender)
        {
            // do my logic here
        }
        base.OnPreRender(e);
    }
2
ответ дан 2 September 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: