没有看到更新进度

时间:2011-08-15 19:14:00

标签: asp.net ajax updateprogress

我有一个实用程序,可以上传文件然后处理并保存。所以我有一个文件上传控件,一个上传的btn和一个带有几个标签的取消btn来显示消息。

问题:当我点击btnupload或btncancel时,我无法看到更新进度。 这是代码。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="lblerrormsg" runat="server" class="lblerrormsg"></asp:Label>
</ContentTemplate> 
</asp:UpdatePanel>

<asp:Label ID="lblsource" runat="server" class="lblleft" Text="Select file ">   
</asp:Label>
<asp:FileUpload ID="FileUploadSource" runat="server" class="BtnUpload" />
<asp:Button ID="btnCancel" runat="server" Text="Cancel" class="btnRefresh"    
OnClientClick="ClearFileUpload()"                                                   
CssClass="btnRefresh" OnClick="btnCancel_Click" />
<asp:Button ID="btnUnlock" runat="server" Text="Process File"       
class="btnRefresh" OnClick="btnUnlock_Click"  CssClass="btnRefresh" /> 
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="100" 
AssociatedUpdatePanelID="UpdatePanel2" >
<ProgressTemplate>
<img alt="Loading" src="Images/updateprogress.gif"   />
</ProgressTemplate>
</asp:UpdateProgress>
<asp:Label ID="lblSaved" runat="server" class="lblleft"></asp:Label><br/>
<asp:Label ID="lblsourcePath" runat="server" class="lblleft"></asp:Label>
</ContentTemplate> 
</asp:UpdatePanel>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="lblerrormsg" runat="server" class="lblerrormsg"></asp:Label>
</ContentTemplate> 
</asp:UpdatePanel>`

请帮忙。 谢谢 昌德

3 个答案:

答案 0 :(得分:0)

消除AssociatedUpdatePanelID并尝试,因为它在UpdatePanel中,我认为你不需要它。

答案 1 :(得分:0)

我的怀疑是因为asp.net文件上传不是异步事件,并且在上传过程中asp.net Ajax被阻止。

我过去解决这个问题的唯一方法是编写我自己的上传器,通过iframe发送文件,并在服务器上自定义处理程序,反映基础http请求中的已发布文件,以便您可以保存它作为一个流,同时提醒客户它的进展。

原因是任何尝试读取请求通常会导致整个文件被加载到内存中。

答案 2 :(得分:0)

Button和UpdateProgress控件都需要位于更新面板中,或者您需要将UpdateProgress控件从UpdatePanel中取出。