gpt4 book ai didi

ASP.NET 3.5 : Display UpdateProgress during Page_Load()

转载 作者:行者123 更新时间:2023-12-02 16:13:11 24 4
gpt4 key购买 nike

我正在使用 Visual Studio 2008 构建一个 ASP.NET 站点,并且有一个如下所示的页面(内容被剪掉)

<asp:Content ID="Content2" ContentPlaceHolderID="PageContentPlaceHolder" runat="server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
the page here..
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="100">
<ProgressTemplate>
<div>
<asp:Image ID="AjaxImage" runat="server" ImageUrl="Ajax.gif" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</asp:Content>

page_load 启动一个漫长(>5s)的过程

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LongRunningProcess();
}
}

如何在 LongRunningProcess 运行时显示 UpdateProgress?当我将 LongRunningProcess() 调用移至按钮 onclick 处理程序时,它确实起作用。

最佳答案

  1. 将 page_load 代码移至新函数中。
  2. 将 AJAX 计时器添加到页面的 ContentTemplate 部分。将间隔设置为 500。(1/2 秒)
  3. 双击设计 View 中的 Timer 对象以创建 _tick 处理程序。
  4. 在上一步创建的 _tick 处理程序中,调用以下代码

    protected void My_Timer_Tick(object sender, EventArgs e)
    {
    My_Timer_Name.Enabled = false;
    My_Page_Load_Function(); // Function created in step 1 above)
    }

    protected void My_Page_Load_Function()
    {
    System.Threading.Thread.Sleep(5000); // A delay to simulate doing something.
    lblMyLabel.Text = "Done!"; // Write output to page.
    }

关于ASP.NET 3.5 : Display UpdateProgress during Page_Load(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/911059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com