日期:2014-05-20  浏览次数:20905 次

救命啊~~.net中customvalidator验证控件没通过验证(IsValid为false)也可以提交成功?
IsValid 都为 false了,还可以提交成功?
不能像其他验证控件一样显示错误信息吗?

C# code

<asp:RequiredFieldValidator ID="RequiredRfvName" runat="server" ControlToValidate="UserName_Txtbox"
                    Display="Dynamic" ErrorMessage="用户名不能为空" Font-Size="9pt" Width="99px"></asp:RequiredFieldValidator>
//上面这个验证控件就可以提示错误,并且有错误时不能提交成功进入下个页面。
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="UserName_Txtbox"
                    Display="Dynamic" ErrorMessage="该用户名已存在" Font-Size="9pt" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator>
//这个customvalidator控件就不行,不会显示错误信息。它的事件是在提交成功转到另一个页面时候发生的。不知道为什么可以成功转到另一个页面,虽然在检测时候 isValid的值肯定是 false的。

//检测会员名字是否已存在
        string SqlStr = "select count(*) from tb_UserLogin where UserName='" + args.Value +"'";
        
        //数据类型转换
        int result = ep.EXECuteScalar(SqlStr);
        //指定控件是否通过验证
        if (result > 0)
        {
            args.IsValid = false;
        }
        else
        {
            args.IsValid = true;
        }



------解决方案--------------------
C# code
 if (Page.IsValid == true) {
       lblOutput.Text = "Page is Valid!";
    }
    else {
       lblOutput.Text = "Some of the required fields are empty.";
    }

------解决方案--------------------
压根就不想用.net的验证控件,无非增加了那么多额外代码,也不见得好用哪去。微软自己的网站都不用这东东