日期:2014-05-17  浏览次数:20392 次

label的值怎么不自动消掉。。

  运行结果:用户名有效!用户名无效,请重新输入!
 
当我输入一个正确的时候只显示 用户名有效。。。但是我输入一个错误的时候 运行结果:用户名有效!用户名无效,请重新输入!
 也就是说上次运行的结果的那个label的值没有消掉。。下面是我的代码:
 前台:
 <asp:TextBox ID="TextuserName" runat="server" Height="25px" Width="180px" ></asp:TextBox>
<asp:Button ID="Buttuser" runat="server" Text="检测用户名" onclick="usertext"/>
 &nbsp; <asp:Label ID="lb1" runat="server" ></asp:Label>
  <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextuserName" 
  ValidationExpression="[a-zA-Z]\w{4,9}" ErrorMessage="用户名无效,请重新输入!" Text="用户名无效,请重新输入!"></asp:RegularExpressionValidator>


后台:

 protected void usertext(object sender, EventArgs e)
  {

  if (RegularExpressionValidator1.IsValid)
  { //连接DB 检测是否被注册
  lb1.Text = "用户名有效!";
   
  }
  else {

  lb1.Text="";
  return;
  }
   

  }

------解决方案--------------------
这是因为,出错的时候只是在客户端验证的,并没有执行服务器端的事件,客户端验证不通过,是不提交到服务器的。所以你的服务器端的代码根本就没执行。所以一致显示。你可以改成这样

 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextuserName"
ValidationExpression="[a-zA-Z]\w{4,9}" ErrorMessage="用户名无效,请重新输入!" Text="用户名无效,请重新输入!"
EnableClientScript="false"></asp:RegularExpressionValidator>