首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UpdatePanel在Response.TransmitFile之后退出响应

UpdatePanel在Response.TransmitFile之后退出响应
EN

Stack Overflow用户
提问于 2011-04-09 05:09:03
回答 1查看 2K关注 0票数 0

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

代码语言:javascript
复制
<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>

在RowCreated事件中,我将btnPurchaseOrderOpen注册为postback控件,因此它会导致完全回发。

在按钮事件处理程序中,我使用Response.TransmitFile方法打开文件。

代码语言:javascript
复制
Response.Clear();
Response.ContentType = GetConentTypeForFile(fi.Extension);
Response.AddHeader("content-disposition", String.Format("attachment;filename={0}", fi.Name));
Response.TransmitFile(fi.FullName);
Response.End();

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-09 12:39:27

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5600798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档