簡體   English   中英

使用更新進度 C#.NET 時更新面板內的 Response.Redirect

[英]Response.Redirect inside Update Panel While Using Update Progress C#.NET

我有一個 Web 應用程序,它使用 ajax 和 asp.net 和 C#。 現在,當單擊 ASP 按鈕時,我正嘗試從 CodeBehind(頁面名稱為 original.aspx)導出報告查看器作為 PDF 文件。 一切都很完美,除非我把按鈕放在 UpdatePanel 中。 因此,在搜索互聯網后,我發現 Response.BinaryWrite、Response.Flush 等不適用於 UpdanePanel,除非我將按鈕指定為 PostBackTrigger,然后忽略使用 UpdatePanel 的目的,因為該頁面有很多控件在到達導出步驟之前要進行很多步驟。

所以我將導出為 PDF 的代碼轉移到另一個頁面上的頁面加載事件(假設 Default.aspx),並考慮使用 Response.Redirect 為導出頁面打開一個新選項卡。

真正發生的是 PDF 是自動下載的(雖然仍然在原始頁面(original.aspx)中)並且沒有重定向 - 這很好 - 但 UpdateProgress 被激活並且從未停止顯示 gif 圖片。 繼續循環。 從代碼中刪除 UpdateProgress 時,一切都按預期運行。 當按鈕位於 UpdatePanel 內(異步而不是 PostBackTrigger)並使用 CodeBehind 中的 Response.Redirect 時,文件被導出和下載。

是否有任何解決方案可以僅通過特定的點擊或任何其他解決方案來禁用、終止代碼背后的 UpdateProgress 進程?

您可以將PostBackTrigger 中的控件 ID 設置為回整頁而不是導致文件下載問題的部分頁面更新

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    ...
   <Triggers>
      <asp:PostBackTrigger ControlID="DownloadButton" />
   </Triggers>
</asp:UpdatePanel>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM