我正在开发一个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);
答案 0 :(得分:0)
您可以在页面上注册用户控件作为异步回发触发器。不再需要魔法了。它对我不起作用的原因是PostBackUrl属性(意外地)设置在按钮上。
<asp:AsyncPostBackTrigger ControlID="myCustomControl" />