下载文件后执行javascript(RegisterStartupScript)
我希望在代码中发生某些进程后,执行一个调用Javascript函数的RegisterStartupScript。它基本上是CSS3制作的加载循环装饰。当我知道这个过程需要一段时间时,我会在clientclick按钮上显示它(用javascript),当这个过程完成时我会隐藏它。一切正常,但现在我有了一个过程,使用response.redirect使用另一个空webform下载文件。文件下载正常,但RegisterStartupScript调用不起作用。我知道问题出在响应上,但我也不需要解决这个问题(我不想改变整个方法,因为它在许多其他页面和流程中都有实现。我将提供相关代码(不是全部),以防您能给我一个直接的解决方法 Javascript下载文件后执行javascript(RegisterStartupScript),javascript,c#,asp.net,css,Javascript,C#,Asp.net,Css,我希望在代码中发生某些进程后,执行一个调用Javascript函数的RegisterStartupScript。它基本上是CSS3制作的加载循环装饰。当我知道这个过程需要一段时间时,我会在clientclick按钮上显示它(用javascript),当这个过程完成时我会隐藏它。一切正常,但现在我有了一个过程,使用response.redirect使用另一个空webform下载文件。文件下载正常,但RegisterStartupScript调用不起作用。我知道问题出在响应上,但我也不需要解决这个问
function LoadingLoopOn()
{
$('#outerAlignId').addClass("outerAlign");
$('#middleAlignId').addClass("middleAlign");
$('#innerAlignId').addClass("innerAlign");
$('#OutterCircleId').addClass("OutterCircle");
$('#InnerCircleId').addClass("InnerCircle");
$('#Loadinglbl').addClass("LoadingLabelStyle");
}
function LoadingLoopOff()
{
$('#outerAlignId').removeClass("outerAlign");
$('#middleAlignId').removeClass("middleAlign");
$('#innerAlignId').removeClass("innerAlign");
$('#OutterCircleId').removeClass("OutterCircle");
$('#InnerCircleId').removeClass("InnerCircle");
$('#Loadinglbl').removeClass("LoadingLabelStyle");
}
HTML(它位于母版页上,以便能够在每个Web表单中使用)
正如我在评论中所指出的,一个可能的解决方案可能是AJAX。进行AJAX调用以强制页面更新,然后(在加载时)处理函数,或者通过此AJAX调用直接调用函数。问题是我不知道在这种情况下如何使用AJAX
非常感谢,可能是@VDWWD,Htanks的副本,请发表评论。恐怕不是同一个。他正在尝试更新aspx页面中的某些内容。我正在尝试使用RegisterStartupScript调用javascript函数。我相信我无法响应其他aspx,然后在同一个aspx中包含指令,即使是下载文件帧。一种可能的解决方案是在响应后使用ajax调用,但我不知道如何实现。。。
<asp:Panel ID="outerAlignId" ClientIDMode="Static" runat="server" CssClass="outerAlign">
<div id="middleAlignId" class="middleAlign">
<div id="innerAlignId" class="innerAlign">
<div id="OutterCircleId" class="OutterCircle"></div>
<div id="InnerCircleId" class="InnerCircle"></div>
<asp:Label ID="Loadinglbl" ClientIDMode="Static" runat="server" Text="Loading..." CssClass="LoadingLabelStyle"></asp:Label>
</div>
</div>
</asp:Panel>
<asp:ImageButton ID="ExportExId" ClientIDMode="Static" runat="server" OnClientClick="LoadingLoopOn();" OnClick="ExportExId_Click" CssClass="..." ImageUrl="..." />
protected void ExportExId_Click(object sender, ImageClickEventArgs e)
{
//...
//Many code and DB treatment goes here, to finally get a temporally Excel file in the server
//..
//I call the page with the file name and path
Response.Redirect(String.Format("DownloadForm.aspx?FileName={0}&Path={1}", fileExported.Name, "Temp" + UserName));
//This piece of code must be excuted in its webform after the redirect (once ee finished)
ScriptManager.RegisterStartupScript(this, GetType(), "LoadingLoopOff", "LoadingLoopOff();", true);
}