请问:
1、CustomValidator验证控件可不可以对同一个textbox空间的内容即进行服务器端验证,又进行客户端验证?
2、如果可以的话,客户端的验证是用户离开textbox输入框架就进行验证,那服务器端验证也可以这样吗? 如何实现? 这是我写的服务器端验证的代码,但是不能实现用户离开输入框就验证,该如何该呢?谢谢了!!!!
private void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
{
 SqlConnection MyConnection=new SqlConnection("server=(local) \\HJHSQL;database=Materials;uid=hjh;pwd=911144");
 string SelectCommand="SELECT UserId From Users WHERE (UserId = @name)and(PassWord =@password )";
 SqlCommand MyCommand=new SqlCommand(SelectCommand,MyConnection);
 MyCommand.Parameters.Add("@name",this.TextBoxUserName.Text);
 MyCommand.Parameters.Add("@password",this.TextBoxPassWord.Text);
 MyCommand.Connection.Open();
 SqlDataReader MyReader;
 MyReader=MyCommand.ExecuteReader();
 args.IsValid = true;
  if(MyReader.Read())
  {
  Response.Write("<script>window.alert('该用户名已被使用,请重新输入')</script>");
  args.IsValid = false;
  }
}

解决方案 »

  1.   

    只有客户端才能在离开时触发
    服务器段必须在PostBack后才可以
      

  2.   

    可以用js代码调动服务器端事件实现。
    ---------
    <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 88px; POSITION: absolute; TOP: 112px" runat="server"
    onfocusout="Button1.click()"></asp:TextBox>
    <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 344px; POSITION: absolute; TOP: 96px;visibility: hidden" runat="server"
    Text="Button"></asp:Button>
      

  3.   

    你可以用js定义input筐的事件,当离开的时候,调用系统自动生成的那个用js触发回传的脚本,这样就可以离开时服务端验证拉