【问题标题】:Update Progress not seen未看到更新进度
【发布时间】:2011-08-15 19:13:59
【问题描述】:

我有一个实用程序,它可以上传文件,然后对其进行处理并保存。所以我有一个文件上传控件、一个要上传的 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>`

请帮忙。 谢谢 钱德

【问题讨论】:

    标签: asp.net ajax updateprogress


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 您可以发布您的自定义代码吗?感谢您的快速回复。
      • 遗憾的是,我不能直接这样做,因为它是我的雇主“拥有”的控制权的一部分;但我可以链接到一个非常...内容丰富的代码项目文章;)codeproject.com/KB/aspnet/UpldFileToDiskProgressBar.aspx
      • 不客气;抱歉,我无法提交我的实际代码,但如果您尝试遵循本文并遇到任何障碍,请告诉我。原理很简单,但请确保下载示例项目以获取所需的 Javascript 位。
      【解决方案3】:

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

      【讨论】:

      • 如果我将按钮放在更新面板中,文件上传不起作用。
      • 把文件上传也放在那里,连同你想被 AJAX 驱动的任何其他控件。我不知道文件上传是否适用于 AJAX。
      • 遗憾的是它没有;面板将呈现上传并让它运行,但您不会获得异步行为。
      猜你喜欢
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 2015-08-26
      • 1970-01-01
      • 2021-07-11
      相关资源
      最近更新 更多