异步更新 ASP.NET 面板
Posted
技术标签:
【中文标题】异步更新 ASP.NET 面板【英文标题】:Update ASP.NET panel asynchronously 【发布时间】:2011-08-24 18:39:24 【问题描述】:我需要一些帮助来解决这个问题:
情况: 我有一个用户控件(在 SharePoint 中),它读取查询字符串并使用异步事件对其进行处理。当它很忙时,会显示一个微调器。事件完成后,用户控件内的更新面板应该更新并显示消息(+隐藏微调器)
代码:我有一个在 UserControl_Unload 事件上异步调用的函数。
private delegate void AsyncFunction(string activation);
void UserControl_Unload(object sender, EventArgs e)
if (!Page.IsPostBack)
AsyncFunction dlgt = new AsyncFunction(this.CheckUrl);
AsyncCallback callback = new AsyncCallback(FunctionCallBack);
IAsyncResult ar = dlgt.BeginInvoke(activationcode, callback, null);
private void CheckUrl(string lalala)
// Some code
用户控件标记:
<asp:UpdatePanel runat="server" id="pnlContent" updatemode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:UpdatePanel runat="server" id="pnlStatus" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<asp:Label runat="server" ID="lblMessage" />
<asp:LinkButton runat="server" ID="btnHome" Text="Terug naar welkom-pagina" PostBackUrl="<% $SPUrl:~sitecollection %>" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" id="pnlGegevens" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<div><asp:Image runat="server" ID="imgLoading" AlternateText="Loading..." CssClass="gb_pl_loadingImage" ImageUrl="<% $SPUrl:~sitecollection/Style Library/GB-VW Styles/Images/ajax-loader.gif %>"/></div>
<div class="gb_pl_loading">Even geduld aub. De gebruiker wordt geactiveerd...</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
这一切都很好,但是当我需要更新面板时,它就不起作用了。
private void FunctionCallBack(IAsyncResult test)
pnlContent.Update()
谁知道如何解决这个问题? (如果可能只使用 asp、c# 或 javascript)
【问题讨论】:
没人知道这个???请帮忙,真的很紧急! 【参考方案1】:是否可以从客户端触发异步操作?也就是说,显示您的页面但包含进行 Web 服务调用的 javascript?这样你至少有一些东西要等待,并且你的客户会收到通知,因为它发起了请求。
否则,一旦异步操作完成,我看不到服务器如何更新已经发送到客户端的页面。
【讨论】:
以上是关于异步更新 ASP.NET 面板的主要内容,如果未能解决你的问题,请参考以下文章