如何在处理时向 ASP.net 添加微调器

问题描述 投票:0回答:1

我正在使用 ASP.net Web 表单

我有用户注册到我的页面

一旦他们注册了第三个 pty 代码,数据库就会更新,这可能需要 1 秒到几分钟的时间

我想在服务器运行并等待第三个 pty 响应时添加旋转轮。

有一个等待检查第三个 pty 结果的循环

我想要的是有一个微调器,向用户显示后端有一个进程正在运行

我尝试添加带有旋转 gif 的 asp:image,但是当我调用它时它不会显示,直到过程完成

我想知道是否有一种简单的方法来添加微调器

这是我的 reg.aspx 代码

<div>
<div>Register</div>
<div>
    <asp:TextBox ID="FirstName" runat="server" placeholder="First Name"></asp:TextBox>
</div>
<div>
    <asp:TextBox ID="LastName" runat="server" placeholder="Last Name"></asp:TextBox>
</div>
<div>
    <asp:TextBox ID="PhoneNumber" runat="server" placeholder="Phone Number"></asp:TextBox>
</div>
<div>
    <asp:TextBox ID="Email" runat="server" placeholder="Email" TextMode="Email"></asp:TextBox>
</div>
<div>
    <asp:TextBox ID="Password" runat="server" placeholder="Password" TextMode="Password"></asp:TextBox>
</div>
    <div>
    <asp:Label ID="ErrorMessage" runat="server" Visible="false" Text=""></asp:Label>
</div>
<div>
    <asp:Image runat="server" ID="imgSpin" ImageUrl="~/images/spinner6.gif" Visible="true" />
</div>                    

<asp:Button ID="registerButton" runat="server" Text="Sign Up" OnClick="registerButton_Click" />

</form>
</body>

这里是 reg.aspx.cs

protected void registerButton_Click(object sender, EventArgs e)
{
    RegisterUser();
}

   protected void RegisterUser()
   {
       imgSpin.Visible = true;
       
       string firstName = FirstName.Text;
       string lastName = LastName.Text;
       string phoneNumber = PhoneNumber.Text;
       string email = Email.Text;
       string password = Password.Text;

       Reg(firstName, lastName, phoneNumber, email, password);
       string resultCode = "*";
       bool bExit = false;


       while (!bExit)
       {
           switch (resultCode.ToUpper())
           {
               case "ERROR":
                   ErrorMessage.Text = "Invalid user ID or password. Please try again.";
                   ErrorMessage.Visible = true;
                   bExit = true;
                   break;


               case "OK":
                   Response.Redirect("job.aspx");
                   bExit = true;
                   break;

               default:
                   // Wait 2 seconds, then call the procedure again
                   System.Threading.Thread.Sleep(2000);
                   resultCode = Call3Pty(); 
                   break;
           }
       }

       imgSpin.Visible = false;
   }

GPT 建议向“注册”按钮添加 2 个事件,但这从未起作用,只有客户端被触发,但后端从未触发

<asp:Button ID="registerButton" runat="server" Text="Sign Up" OnClick="registerButton_Click" OnClientClick="showSpinner();" />

如何在我的代码在后台运行时添加一个简单的微调器

javascript c# asp.net webforms
1个回答
0
投票

Asp.NET(从 v2.0 开始)有一组方便的 AJAX 控件,

ScriptManager
UpdatePanel
UpdateProgress
等等。这是一个示例脚本。

注册.aspx

<form ID="Form1" runat="server">
<asp:ScriptManager ID="scriptMgr1" runat="server" /><%-- must go before other controls --%>
<asp:UpdatePanel ID="upPnl" runat="server" UpdateMode="Conditional">
<asp:ContentTemplate>
<asp:TextBox ID="userName" runat="server" />
<%--Other form fields --%>
<asp:Button ID="registerButton" runat="server" Text="Sign Up" OnClick="registerButton_Click" />
</ContentTemplate>
<asp:UpdateProgress ID="upProgress" runat="server" DisplayAfter="1000"><%-- 1000ms --%>
<ProgressTemplate><%-- can be outside UpdatePanel --%>
<img src="spin.gif" />
</ProgressTemplate>
</asp:UpdateProgress>
</asp:UpdatePanel>
</form>

注册.aspx.cs

protected void registerButton_Click(object sender, EventArgs e)
{
RegisterUser();
}
© www.soinside.com 2019 - 2024. All rights reserved.