我正在使用 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();" />
如何在我的代码在后台运行时添加一个简单的微调器
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();
}