ASP.NET AJAX UpdateProgress в пользовательском элементе управления для UpdatePanel на родительской странице - PullRequest
1 голос
/ 07 июля 2010

Я работаю над приложением веб-форм ASP.NET.На моей странице у меня есть UpdatePanel и пользовательский элемент управления с UpdateProgress и кучей кнопок.Когда пользователь нажимает одну из кнопок, я хотел бы выполнить асинхронную обратную передачу и показать UpdateProgress.

Может ли кто-нибудь помочь мне с сделать обратную передачу асинхронной (похоже на этоработает), а также делает UpdateProgress видимым (еще не работает)?

Обычно это можно сделать довольно легко, определив UpdateTrigger в разметке страницы.Внутри пользовательского контроля это не так.Я выставил публичное свойство AssociatedUpdatePanelID, чтобы внутри элемента управления был UpdatePanel ID.

UpdateProgress определяется следующим образом:

<asp:UpdateProgress AssociatedUpdatePanelID='<%# AssociatedUpdatePanelID %>' />

Это то, что я пыталсяв моем элементе управления Page_Load, но ни один из подходов не работает (выполняется обратный вызов, но UpdateProgress не появляется):

updatePanel.Triggers.Add(new AsyncPostBackTrigger()
{
    ControlID = this.ID,
    EventName = "RequestOptimize"
});

var scriptMgr = ToolkitScriptManager.GetCurrent(Page);
scriptMgr.RegisterAsyncPostBackControl(optimizeButtonJobs);
scriptMgr.RegisterAsyncPostBackControl(this);

1 Ответ

0 голосов
/ 30 января 2015

Вы можете просто зарегистрировать свой пользовательский элемент управления на странице как триггер асинхронной обратной передачи.Больше магии не требуется.Причина, по которой он не работал для меня, была свойство PostBackUrl, которое (случайно) было установлено на кнопке.

<asp:AsyncPostBackTrigger ControlID="myCustomControl" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...