LinkButton не выполняет постбэк при втором нажатии - PullRequest
1 голос
/ 28 декабря 2010

Я хочу, чтобы клиенты могли загружать PDF-файл.Поэтому я установил LinkButton с кодом:

Разметка:

<asp:LinkButton ID="lnkPrintHere" runat="server" OnClick="lnkPrintHere_Click" Text="Click here" />

Код сзади:

protected void lnkPrintHere_Click(object sender, EventArgs e)
{
    Response.ContentType = "application/pdf";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
    Response.TransmitFile("/_layouts/Files/" + fileName);
    Response.End();
}

Все отлично работает, сначала 1010 * время, когда ссылка нажата.Последующие клики не вызывают событие OnClick.Кто-нибудь знает, почему это может происходить?

PS: Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2010

Вы всегда можете попробовать альтернативы в самом методе ответа, я использовал ваш код с Response.Close и он работает нормально. Но я знаю, что это не правильный вариант, но использование строки запроса для загрузки тоже не правильный вариант.

0 голосов
/ 28 декабря 2010

Это происходит, если вы используете Response.End()

Это упоминается здесь: Post Back не работает после записи файлов для ответа в ASP.NET

Одним из обходных путей является использование подхода строки запроса. При нажатии кнопки ссылки перенаправить на ту же страницу со строкой запроса. А при загрузке страницы, если вы обнаружите строку запроса, создайте файл PDF и вернитесь.

...