Я использую Gridview
внутри UpdatePanel
.В этом Gridview
я использую LinkButton
(у меня такая же проблема с imageButton
) для CommandArgument
и пытаюсь загрузить pdf-файл, когда пользователь нажимает.
Было довольно сложно запустить Button в этом UpdatePanel
, но все, кажется, в порядке.Пользователь нажимает кнопку, и я получаю правильный идентификатор с CommandArgument
.С этим идентификатором я пытаюсь Response
файл pdf, но получаю сообщение об ошибке:
0x800a139e - Ошибка времени выполнения JavaScript: Sys.WebForms.PageRequestManagerParserErrorException: сообщение, полученное с сервера, не может быть проанализировано.
Файл pdf находится на сервере, с кнопкой вне UpdatePanel
Я получаю правильный файл PDF.Так что мне нужно изменить, чтобы запустить это в UpdatePanel
?Спасибо
Сетка:
<asp:TemplateField HeaderText="" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="Fehlermeldung" runat="server" CommandArgument='<%#Eval("ID")%>' OnClick="Fehlermeldung_Click1">
<asp:Image ID="Fehler" ImageUrl="~/images/fehlermeldung.png" ToolTip="Fehlermeldung anzeigen" runat="server" />
</asp:LinkButton>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
Код сзади:
protected void Fehlermeldung_Click1(object sender, EventArgs e)
{
string id = ((LinkButton)sender).CommandArgument;
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment;Filename=Fehlermeldung_" + id + ".pdf");
Response.TransmitFile(Page.MapPath(@"App_Data\Fehlermeldung_" + id + ".pdf"));
Response.End();
}