Jquery GemBox停止后端代码的其余部分以在DNN模块中运行

Jquery GemBox停止后端代码的其余部分以在DNN模块中运行,jquery,dotnetnuke,gembox-spreadsheet,Jquery,Dotnetnuke,Gembox Spreadsheet,我们有一个DNN模块,一旦您选择了要将其导出到的格式,它将从我们的ERP系统中获取价目表。我们正在使用GemBox生成Excel、CSV或PDF文件,但我们意识到的问题是,一旦开始生成要下载的文件,其余代码就会停止工作。这意味着回发停止 我们正在使用GemBox中的最后一段代码,它不会硬中止线程: 我们确保在DotNetNuke中禁用部分渲染 然后,一旦代码触发生成Exel、CSV或PDF文件,我们就更改了后端代码,以获取一个单独的.aspx文件(而不是.ascx文件)。这将防止回发停止工作。这

我们有一个DNN模块,一旦您选择了要将其导出到的格式,它将从我们的ERP系统中获取价目表。我们正在使用GemBox生成Excel、CSV或PDF文件,但我们意识到的问题是,一旦开始生成要下载的文件,其余代码就会停止工作。这意味着回发停止

我们正在使用GemBox中的最后一段代码,它不会硬中止线程:

我们确保在DotNetNuke中禁用部分渲染

然后,一旦代码触发生成Exel、CSV或PDF文件,我们就更改了后端代码,以获取一个单独的.aspx文件(而不是.ascx文件)。这将防止回发停止工作。这将生成下载文件,但我正在尝试停止显示加载图标。我使用了RegisterStartupScript,它会转到JQuery函数来停止它,但它从不激发这个RegisterStartupScript,即使在单独的文件上,代码包含在PageLoad部分中,并且在调试时经过它。(这是否意味着您不能在除view.ascx文件之外的DNN模块上加载单独的页面?)

在下载此下载文件后,前端似乎永远不会更新。这可能是破坏其余代码的HTTP头响应吗

如何在不重新加载整个网页的情况下重置/重新加载DNN模块页面


这是否意味着我必须用某种Web Worker函数编写一个Ajax函数?我只想在浏览器上弹出下载文件后重新加载DNN模块

生成文件并使用要下载的文件响应用户时。浏览器不能处理任何其他操作或响应,如注册启动脚本或其他。但是你可以寄回一块饼干

因此,处理这一问题的一种方法是在客户端代码单击下载并显示进度指示器时触发它们,然后根据您的实现方式检查cookie是否存在。当此更改时,您可以隐藏进度


这个解决方案有点复杂,但是关于如何做到这一点:

这不是特定于DNN的,但是服务器只能向客户端发送一个请求。这可以是一个可下载的文件,也可以是一个更新的html页面,但不能两者兼而有之。我不知道gembox模块,但是如果您想在下载后更新UI,您需要一个jquery/ajax解决方案。