У нас есть модуль DNN, который будет получать прайс-лист из нашей системы ERP после того, как вы выберете формат, в который хотите его экспортировать. Мы используем GemBox для создания файла Excel, CSV или PDF, но проблема, которую мы осознали, заключается в том, что остальной код перестает работать, как только он начинает генерировать файл для загрузки. Это означает, что PostBack останавливается.
Мы используем последний раздел кода из GemBox, который не приведет к жесткому прерыванию потока: https://gemboxsoftware.deskpro.com/kb/articles/threadabortexception-in-asp-net-application
Мы убедились, что в DotNetNuke отключен частичный рендеринг.
Затем мы изменили внутренний код, чтобы получить отдельный файл .aspx (не файл .ascx), как только код запускается для создания файла Exel, CSV или PDF. Это предотвращает прекращение работы PostBack. Теперь будет создан файл загрузки, но я пытаюсь отключить отображение значка загрузки. Я использовал RegisterStartupScript, который переходит к функции JQuery, чтобы остановить его, но он никогда не запускает этот RegisterStartupScript, даже если в отдельном файле, код которого включен в раздел PageLoad, и код проходит через него при отладке. (Означает ли это, что вы не можете загружать отдельные страницы в модуль DNN, кроме файла view.ascx?)
Похоже, что Front-End никогда не обновляется после загрузки этого файла загрузки. Может быть, это ответ HTTP-заголовка, который нарушает остальной код?
Как я могу сбросить / перезагрузить страницу модуля DNN без перезагрузки всей веб-страницы?
Означает ли это, что мне придется написать функцию Ajax с какой-нибудь функцией Web Worker? Я просто хотел бы перезагрузить модуль DNN, как только в браузере появится файл загрузки.