TextBox OnTextChanged 事件后标签没有改变 ASP.NET
Label Does Not Change After TextBox OnTextChanged Event ASP.NET
我有一个用户名 TextBox 和一个标签,当 TextBox 文本更改时,标签应更新为(V 或 X)。只有当我按下一个自动刷新页面的按钮时,标签才会更新。
代码如下:
<asp:TextBox ID="username" runat="server" OnTextChanged="checkUsername" Width="80%"></asp:TextBox>
<asp:Label ID="usernameCheck" runat="server" CssClass="checkL"></asp:Label>
还有 aspx.cs
protected void checkUsername(object sender, EventArgs e)
{
if (username.Text.Length < 3 || username.Text.Length > 15)
{
//---Label = X (in red)
usernameCheck.Text = "\u2715";
}
else
{
if (myBl.checkUsername(Convert.ToString(username)))
{
//---Label = X (in red)
usernameCheck.Text = "\u2715";
}
else
{
//---Label = V (in green)
usernameCheck.Text = "\u2713";
}
}
}
感谢您的帮助。
您需要将 AutoPostBack="true"
添加到您的文本框。这将导致它 post 返回并触发该服务器端事件。
不过,有很多更好的方法可以完成您想要完成的任务,其中大部分不需要整页 post返回。我会尝试使用 javascript 更改事件并使用类似回调方法的方法进行 AJAX 调用。
我有一个用户名 TextBox 和一个标签,当 TextBox 文本更改时,标签应更新为(V 或 X)。只有当我按下一个自动刷新页面的按钮时,标签才会更新。
代码如下:
<asp:TextBox ID="username" runat="server" OnTextChanged="checkUsername" Width="80%"></asp:TextBox>
<asp:Label ID="usernameCheck" runat="server" CssClass="checkL"></asp:Label>
还有 aspx.cs
protected void checkUsername(object sender, EventArgs e)
{
if (username.Text.Length < 3 || username.Text.Length > 15)
{
//---Label = X (in red)
usernameCheck.Text = "\u2715";
}
else
{
if (myBl.checkUsername(Convert.ToString(username)))
{
//---Label = X (in red)
usernameCheck.Text = "\u2715";
}
else
{
//---Label = V (in green)
usernameCheck.Text = "\u2713";
}
}
}
感谢您的帮助。
您需要将 AutoPostBack="true"
添加到您的文本框。这将导致它 post 返回并触发该服务器端事件。
不过,有很多更好的方法可以完成您想要完成的任务,其中大部分不需要整页 post返回。我会尝试使用 javascript 更改事件并使用类似回调方法的方法进行 AJAX 调用。