У меня есть GridView в UpdatePanel, который показывает список файлов. Одним из столбцов в 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>
В событии RowCreated я регистрирую btnPurchaseOrderOpen в качестве элемента управления PostBack, поэтому он вызывает полную обратную передачу.
В обработчике событий кнопки я открываю файл методом Response.TransmitFile.
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 прекращает обновление. Я могу нажимать другие кнопки, и они никогда не отправляют обратно синхронно или асинхронно. У меня такое чувство, что проблема связана с ответом, но я не знаю, как это исправить.