i有一个<asp:Button />
,用于将DataTable
导出到Excel中。在生成DataTable
时,我需要显示进度图像。下面是我的尝试,但仍然卡住。可能我在这里不了解生命周期。感谢任何帮助。
ASPX
<asp:Button ID="ExportResults" runat="server" UseSubmitBehavior="false" Text="Export Selected" OnClientClick="showWaitingForExport();" OnClick="ExportResults_Click"/>
javascript
function showWaitingForExport() {
$("#progressbar").progressbar({ value: false });}
后面的代码
protected void ExportResults_Click(object sender, EventArgs e)
{
DataTable resultDT = GenerateDataTable(); //This is the time taking function and after this I need to hide my progressbar while response still not get end
ScriptManager.RegisterStartupScript(this, this.GetType(), "stopprogress", "$('#progressbar').progressbar('destroy');", true);
string filename = "Search_Results.xlsx";
workbook.AddWorksheet(resultDT, "Search Results");
workbook.SaveAs(Server.MapPath("~/Temp/" + filename));
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
Response.TransmitFile(Server.MapPath("~/Temp/" + filename));
Response.End();
}
除非我误解了这个问题,否则请查看此链接 - 开发人员需要做的相当普遍的事情:http://www.dotnetcurry.com/showarticle.aspx?id=227
单击按钮时,请调用onclientClick,但随后请求转到服务器(onClick =" exportresults_click"),浏览器/客户端将显示正常的加载页面(通常是空白的白页)。您应该能够使用链接中描述的一种策略来使用更新面板进度栏。(我知道的)唯一解决此问题的方法是使用异步回发,因此服务器正在处理时仍显示页面。
这有意义吗?这篇文章有帮助吗?如果需要,我可以详细介绍或显示一个示例。我不是在带有Visual Studio的计算机上放一个示例,但是如果没有其他人回答,我可以明天发布一些内容。