在 asp.net 中发生服务器端执行时更改客户端组件的属性



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的计算机上放一个示例,但是如果没有其他人回答,我可以明天发布一些内容。

相关内容

  • 没有找到相关文章

最新更新