父页面中UpdatePanel的用户控件中的ASP.NET AJAX UpdateProgress

时间:2010-07-07 09:37:34

标签: asp.net asp.net-ajax user-controls webforms updatepanel

我正在开发一个ASP.NET Web表单应用程序。在我的页面中,我有一个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 :(得分:0)

您可以在页面上注册用户控件作为异步回发触发器。不再需要魔法了。它对我不起作用的原因是PostBackUrl属性(意外地)设置在按钮上。

<asp:AsyncPostBackTrigger ControlID="myCustomControl" />