поднять постбэквент не стреляет - PullRequest
0 голосов
/ 21 сентября 2010

Я создаю собственный серверный элемент управления ASP.NET. Я реализовал как IPostBackDataHandler, так и IPostBackEventHandler. На PreRender я зарегистрировал логику обратной передачи:

    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        if (Page != null)
        {
            Page.RegisterRequiresRaiseEvent(this);
            Page.RegisterRequiresPostBack(this);
        }
    }

Элемент управления использует ImageButton (но я также пытался с простой кнопкой); когда она нажата, я вижу, что страница «обновляется», и публикуются некоторые данные (я проверил это). Однако я не знаю, почему RaisePostBackEvent (строка eventArguments) не запускается.

Кто-нибудь знает, что происходит? Может ли кто-нибудь указать мне правильное направление, чтобы решить эту проблему?

Заранее спасибо,

Ура, Джанлука.

1 Ответ

0 голосов
/ 07 апреля 2011

Регистрация вашего элемента управления во время фазы PreRender слишком поздняя.Вы можете сделать это во время фазы Load:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    if (Page != null && Page.IsPostBack)
    {
        Page.RegisterRequiresRaiseEvent(this);
        Page.RegisterRequiresPostBack(this);
    }
}
...