Используя ASP.Net, JQuery и BlockUI, я пытаюсь разблокировать интерфейс после отображения диалогового окна загрузки файла.
Я блокирую пользовательский интерфейс при нажатии кнопки экспорта:
<script type="text/javascript">
$(document).ready(function(){
$('#<%= BtnExport.ClientID%>').click(function(){
$.blockUI();
});
});
</script>
После этого я генерирую сторону файлового сервера, используя:
private void SendFileToUser(byte[] file, string contentType, string filename)
{
Response.Clear();
Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", "attachment; filename="+filename);
Response.OutputStream.Write(file,0,file.Length);
Response.OutputStream.Flush();
Response.End();
}
После выполнения этого кода я хотел бы разблокировать интерфейс.
Я рассмотрел разные варианты:
- Опрос с использованием Ajax-вызовов, чтобы увидеть, был ли файл сгенерирован.
- Сохраните файл в сеансе и перенаправьте на ту же страницу, а затем создайте загрузку.
Но оба варианта кажутся неудачными, и я думаю, что должен быть умный способ JavaScript, чтобы получить ручку или дождаться открытия файлового диалога.
Есть предложения?