В моем приложении у меня есть панель обновлений с несколькими кнопками. Одна из этих кнопок - кнопка «Экспорт» - после нажатия на нее пользователь может загрузить отчет на свой локальный компьютер.
Кнопка
создается следующим образом:
btnSave = new Button
{ ID = "btnSave", CausesValidation = false, Text = "Save", CommandName = CommandNames.SaveToCSV };
Controls.Add(btnSave);
ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnSave);
И после нажатия на него исполняется этот код:
string csv = GenerateReport();
Page.Response.Clear();
Page.Response.Buffer = true;
Page.Response.ContentType = "text/csv";
Page.Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
Page.Response.Write(csv);
Page.Response.End();
Загрузка работает корректно даже в панели обновления. Моя проблема заключается в том, что после первого нажатия кнопки «Экспорт» все кнопки перестают работать - у меня есть страница, которая ничего не отправляет на сервер - проверено в Fiddler (но клиентский javascrpts работает правильно).
Кто-нибудь знает, как решить эту проблему? Возможно, есть другой способ загрузки данных с панели обновления (я не могу удалить эту кнопку с панели обновления).