Javascript不能在使用ajax的response.redirect上工作ASP.Net
我将ASP.Net页面重定向到下载页面,并使用ajax。重定向页面确实起作用,文件被下载并且显示了称为下载的页面。我需要在下载文件后调用javascript以删除等待的屏幕。Javascript不能在使用ajax的response.redirect上工作ASP.Net
我第一次打电话给redirect,然后javascript打开UI。阻止用户界面,我正在使用onclientclick ='block()';
Response.Redirect("ExportFile.aspx, false);
ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "alert('');unblock();", true);
即使警报不工作,所以JS根本没有被解雇。我厌倦了将代码放在文件下载页面上,但这也不起作用。我甚至尝试过身体onpageunload但是从来没有开火。
我该如何重定向到文件下载页面,然后调用JS来解锁UI?
一旦发生response.redirect,则不能执行其他代码。 我建议在JavaScript中编写重定向代码并将其放入RegisterClientScriptBlock中。只要确保unblock在window.location之前。
ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "unblock(); window.location.assign('yourPage.aspx');", true);
我确实尝试过,但确实有效,但首先解锁的代码会先触发,然后网页开始下载。数据来自wcf服务,大约需要20秒。由于解除阻止代码被激发,用户将看不到任何内容,直到文件准备就绪。 –
当文件准备就绪时,你可以启动一个javascript函数吗?或使用自定义事件?然后,您可以使用“RegisterClienScriptBlock”函数设置侦听器,一旦文件准备就绪,它就会解锁页面。 – SeanKendle
WCF服务获取数据后,我在导出页面的页面加载过程中完成,但是在数据准备好保存并且没有激发js后,该页面消失。 –
boruchsiper是正确的。另外,一旦你重定向了他们,你就在另一个页面上(如果我的假设是正确的,你将重定向到不同的页面)。您想在新的页面抵达后,火过这一行,所以你会希望它在该页面的代码背后的Load()
功能:
ScriptManager.RegisterClientScriptBlock((this), this.GetType(), "alertAction", "alert('');unblock();", true);
您可能要包括在查询字符串重定向URL以告知该页面采取该操作。
我也试过,我也将脚本管理器更改为启动脚本。即使Body = onunload也不会在导出页面上触发。 由于页面A重定向到下载文件页面,该页面甚至从未见过。出于某种原因下载文件或导出数据,您必须重定向页面 –
我不知道但如果你将重定向用户,这是不寻常的块整个页面。 –
问题没有解决。我打电话给jquery block Ui。将页面变成透明黑色。现在我需要解锁它,但我无法得到任何JS发射。 –