我正在尝试使用asp:progress,以便在单击asp:button时调用ashx文件,并编写CSV响应。迄今为止,当我单击按钮时,动画正确显示并开始下载。但是,当文件开始下载(当我从ashx文件获取响应)时,似乎无法停止动画。以下是aspx代码:
以下是来自ashx文件的ProcessRequest函数:
我尝试过使用javascript和PageRequestManager类的endRequest、beginRequest和initializeRequest事件(我在这里找到了一些代码片段here),但迄今为止还没有任何作用。
当下载开始时,如何强制停止动画?
<asp:Content ID="Content2" ContentPlaceHolderID="MainPlaceHolder" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<p>Download a CSV file</p>
<asp:Button ID="Button2" runat="server" Text="Download"
CausesValidation="False" onclick="Button2_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" AssociatedUpdatePanelID="UpdatePanel1" runat="server">
<ProgressTemplate>
<div id="AlertDiv" style="background:White">
<asp:Image ID="imgLoading" runat="server" ImageUrl="css/smoothness/images/animated-overlay.gif" Width="34px" />Loading...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</asp:Content>
这里是Button2_click函数:
protected void Button2_Click(object sender, EventArgs e)
{
try
{
Response.Redirect("ProductsHierarchyDownload.ashx");
}
catch (Exception ex)
{
//log
}
}
以下是来自ashx文件的ProcessRequest函数:
public void ProcessRequest(HttpContext context)
{
string attachment = String.Format("attachment; filename=Hierarchie des produits au {0}.csv", DateTime.Today.ToShortDateString());
context.Response.AddHeader("content-disposition", attachment);
context.Response.ContentType = "text/csv";
context.Response.AddHeader("Pragma", "public");
context.Response.ContentEncoding = Encoding.GetEncoding(1252);
context.Response.Write(DemandeTarifImageBLL.DataTableToCSVString());
}
我尝试过使用javascript和PageRequestManager类的endRequest、beginRequest和initializeRequest事件(我在这里找到了一些代码片段here),但迄今为止还没有任何作用。
当下载开始时,如何强制停止动画?