2011-12-28 56 views
0

更新進度不起作用。代碼如下,當我點擊網格中的任何按鈕(分頁,過濾等)時,進度正在工作。但是當我點擊圖像按鈕時,進度不工作。在母版頁 更新進度不起作用

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="upnlStockList" 
     DisplayAfter="0" DynamicLayout="true"> 
     <ProgressTemplate> 
      <div class="PopupPanel"> 
       <table style="vertical-align: middle; width: 100%; height: 900px"> 
        <tr> 
         <td valign="middle" align="center"> 
          <img id="Img1" src="~/Images/loading.gif" runat="server" /> 
         </td> 
        </tr> 
       </table> 
      </div> 
     </ProgressTemplate> 
    </asp:UpdateProgress> 
<asp:UpdatePanel ID="upnlStockList" runat="server" ChildrenAsTriggers="true" UpdateMode="Always"> 
     <ContentTemplate> 
      <grid></grid> 
     </ContentTemplate> 
     <Triggers> 
      <asp:PostBackTrigger ControlID="imgPDF" /> 
      <asp:PostBackTrigger ControlID="imgExcel" /> 
      <asp:PostBackTrigger ControlID="imgCSV" /> 
     </Triggers> 
    </asp:UpdatePanel> 
    protected void imgExcel_Click(object sender, ImageClickEventArgs e) 
    { 
      (initializing the report and assigning parameter). 
      ReportProcessor reportProcessor = new ReportProcessor(); 
      RenderingResult result = reportProcessor.RenderReport(PDF, rptStockList, null); 
      string fileName = result.DocumentName + ".pdf"; 
      Response.Clear(); 
      Response.ContentType = result.MimeType; 
      Response.Cache.SetCacheability(HttpCacheability.Private); 
      Response.Expires = -1; 
      Response.Buffer = true; 
      Response.AddHeader("Content-Disposition", string.Format("{0};FileName=\"{1}\"", "attachment", fileName)); 
      Response.BinaryWrite(result.DocumentBytes); 
      Response.End(); 
    } 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 

腳本管理器通過點擊圖像按鈕我下載該報告爲PDF格式。

+0

你在你的代碼有ScriptManager的地方嗎? – maxisam 2011-12-28 04:29:36

+0

謝謝你的回覆.....是...在母版頁和進度使用網格動作(分頁,過濾) – 2011-12-28 04:32:54

+0

調試你的按鈕點擊事件。檢查它是否正在開火。 – RajeshKdev 2011-12-28 04:43:03

回答

1
<asp:AsyncPostBackTrigger> 

的AsyncPostBackTrigger指定控件和事件,這將導致部分頁面更新包含此觸發參考UpdatePanel的。

<asp:PostBackTrigger> 

PostBackTrigger指定將導致整個頁面更新(整個頁面刷新)的控件和事件。當控件會觸發部分渲染時,可以使用該標籤強制進行全面刷新。

所以儘量使用這樣的。

<asp:AsyncPostBackTrigger ControlID="imgPDF" /> 
<asp:AsyncPostBackTrigger ControlID="imgExcel" /> 
<asp:AsyncPostBackTrigger ControlID="imgCSV" /> 

希望這會有所幫助...

+0

謝謝你的回覆..我試着用上面的代碼 ".Now update progress working.But i需要下載PDF格式的報告,這不會發生。 – 2011-12-28 05:03:14

+0

k現在檢查按鈕單擊事件與回發。工作是否正常...... – RajeshKdev 2011-12-28 05:18:42

+0

您的意思是添加此代碼「」。然後下載正在進行,但進度沒有顯示 – 2011-12-28 05:22:19

1

我認爲這個問題是

<asp:PostBackTrigger ControlID="imgPDF" /> 

嘗試AsyncPostbackTriggers代替。

退房MSDN

就像我說的,它僅適用於異步回。

UpdateProgress控件根據相關的UpdatePanel控件是否導致異步回發來呈現顯示或隱藏的元素。對於初始頁面呈現和同步回發,UpdateProgress控件不會顯示。

對於遇到的文件下載問題。你應該閱讀這AJAX, file downloads, and IFRAMEs

+0

當我添加「AsyncPostbackTriggers」時,pdf下載沒有發生 – 2011-12-28 04:46:37

+0

您是否也將事件與它綁定?你的按鈕在哪裏?它在更新面板? – maxisam 2011-12-28 04:51:13

+0

現在我試着用「".Now progress working working but not not happeneding – 2011-12-28 04:58:11