ASP.NET GridView и UpdatePanel - PullRequest
       30

ASP.NET GridView и UpdatePanel

1 голос
/ 25 марта 2010

У меня есть GridView, внутри UserControl, внутри UpdatePanel на странице.

В GridView есть Button, который должен выстрелить PostBack. Что происходит, это: Пользователь нажимает Button -> RowCommand Пожары -> Настраиваемое событие возникает на UserControl -> Страница обнаруживает это и изменяет индекс активного просмотра для MultiView, а также заголовок страницы и некоторые другие элементы управления вне UpdatePanel.

Проблема в том, что страница отправляется обратно асинхронно, заголовок страницы изменяется, но действия, требующие полного PostBack, не выполняются, поскольку полное PostBack не происходит.

Чтобы зарегистрировать кнопку как триггер PostBack, я использую:

ImageButton btnResults = e.Row.FindControl("btnResults") as ImageButton;
ScriptManager scrCurrent = ScriptManager.GetCurrent(this.Page);
if (btnResults != null && scrCurrent != null) {
    scrCurrent.RegisterPostBackControl(btnResults);
}

Я знаю, что это немного сложная проблема, но я бы очень признателен за любую помощь.

1 Ответ

1 голос
/ 26 марта 2010

Возможным решением было использовать приведенный выше код как есть, но в событии RowCreated вместо RowDataBound. Очевидно, одна из особенностей ASP.NET, иногда порядок событий является неожиданным и, казалось бы, непредсказуемым. По той же причине я всегда считал, что лучше всего регистрировать JavaScript как можно позже, поэтому я обычно использую событие SaveStateComplete.

...