并在其servervalidator函数中通过查询数据库判断用户名是否存在,如果存在arg.IsValide=false; 否则为true;
但是,为什么当焦点离开该textbox,且arg.Isvalide为false 时,没有触发此验证控件,但是当点button的时候却触发了呢,有什么办法可以让焦点离开的时候触发此控件?
代码如下:
<asp:TextBox id="userid" runat="server" MaxLength="12" CausesValidation="True"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="userid"
Display="Dynamic" EnableClientScript="true" ErrorMessage="用户已存在" OnServerValidate="CustomValidator1_ServerValidate1"
SetFocusOnError="True"></asp:CustomValidator>
protected void CustomValidator1_ServerValidate1(object source, ServerValidateEventArgs args)
{
string username = userid.Text.ToString();
string str = "select count(*) from blog_user where user_name=" + username;//这里测试过了,没问题
if (odb.sum(str) > 0)
{
args.IsValid =false;
}
else
{
args.IsValid = true;
}
}
现在给我改的不管args.IsValid是true还是false都不会出来错误信息了
[此贴子已经被作者于2007-11-9 10:37:42编辑过]