Asp.net UpdatePanel在Response.TransmitFile之后退出响应

Asp.net UpdatePanel在Response.TransmitFile之后退出响应,asp.net,updatepanel,Asp.net,Updatepanel,我在UpdatePanel中有一个GridView,显示文件列表。GridView中的一列是打开列出的PDF文件的按钮 <asp:UpdatePanel runat="server" ID="upPurchaseOrder"> <ContentTemplate> <asp:GridView ID="gvPurachaseOrder" runat="server" AutoGenerateColumns="False" DataSourceID

我在UpdatePanel中有一个GridView,显示文件列表。GridView中的一列是打开列出的PDF文件的按钮

<asp:UpdatePanel runat="server" ID="upPurchaseOrder">
    <ContentTemplate>
        <asp:GridView ID="gvPurachaseOrder" runat="server" AutoGenerateColumns="False" DataSourceID="odsPurchaseOrders"
            EnableModelValidation="True" DataKeyNames="PurchaseOrderID,PromotionID"  onrowcreated="gvPurachaseOrder_RowCreated">
            <Columns>
                <%--BoundFields omitted--%>
                <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                        <asp:Button ID="btnPurchaseOrderOpen" runat="server" Text="Open" CommandName="Open" 
                            CommandArgument='<%# Eval("FilePath") %>' oncommand="btnPurchaseOrderOpen_Command" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>

我的问题是,文件打开后(正确打开),UpdatePanel停止更新。我可以单击其他按钮,它们不会同步或异步发回。我感觉问题与响应有关,但我不知道如何解决它。

您正在进行完整的回帖,但没有向服务器返回任何新页面,因为您只执行transmitfile,然后执行response.end。这基本上是你页面的死胡同。您可能希望绕过这个问题的方法是在iframe中完成完整的post,或者简单地创建一个到下载文件的直接链接,即使这可能是一个ashx处理程序,您可以继续使用与您已经使用的类似的逻辑

Response.Clear();
Response.ContentType = GetConentTypeForFile(fi.Extension);
Response.AddHeader("content-disposition", String.Format("attachment;filename={0}", fi.Name));
Response.TransmitFile(fi.FullName);
Response.End();