更新进度无效

时间:2011-12-28 04:23:22

标签: asp.net

更新进度无效。下面给出了代码,当我点击网格中的任何按钮(分页,过滤等)时,进度正常。但是当我点击图像按钮时,进度无效。< / p>

<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。

2 个答案:

答案 0 :(得分:1)

我认为问题是

<asp:PostBackTrigger ControlID="imgPDF" />

尝试使用AsyncPostbackTriggers。

查看MSDN

像我说的那样,它只适用于异步回发。

  

UpdateProgress控件呈现显示或隐藏的元素,具体取决于关联的UpdatePanel控件是否导致异步回发。对于初始页面呈现和同步回发,不显示UpdateProgress控件。

遇到您遇到的文件下载问题。你应该阅读这个AJAX, file downloads, and IFRAMEs

答案 1 :(得分:1)

<asp:AsyncPostBackTrigger>

AsyncPostBackTrigger指定一个控件和事件,它将导致包含此触发器引用的UpdatePanel的部分页面更新。

<asp:PostBackTrigger>

PostBackTrigger指定将导致整页更新(整页刷新)的控件和事件。当控件以其他方式触发部分渲染时,此标记可用于强制完全刷新。

所以试着这样使用。

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

希望这可能有帮助...