.net的验证控件使用总结

1:ValidationSummary 控件

可以解决错误信息提示排版上的问题. 单独用RequiredFieldValidator 我以前一直没有设Text属性.结果一错误就是errormessage这边就出来了设了text后就不会显示errormessage 而显示Text了
这个时候如果有ValidationSummary 存在.
他会把其它验证控件中的errormessage的错误全显示出来.
ShowMessage  弹出对话框
ShowSummary 有一个区域 显示文字,可以只要弹出对话框,这个时候就是showsummary=false 如:

 <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List"
            Height="1px" ShowMessageBox="True" ShowSummary="False" Width="228px" />

HeadText 显示, 标题

  <asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="there is the headertext" />

2:RequiredFieldValidator控件

这个比较简单,就是验证他所对应的控件是否是为空

 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1"
            ErrorMessage="RequiredFieldValidator error"></asp:RequiredFieldValidator>

 

3:RangeValidator控件

就是验证他所对应的控件是否在他规定的范围之内

  <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="range1"
            ErrorMessage="RangeValidator" MaximumValue="11" MinimumValue="1"></asp:RangeValidator>

 

4:RegularExpressionValidator控件  

这个是自定义的控件,可以验证邮件,地址,身份证之类

 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator" ValidationExpression="\d{6}"></asp:RegularExpressionValidator>

 

5:CompareValidator控件

就是用来比较两个控件的值是否相等的控件

<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="TextBox5"
            ControlToValidate="TextBox4" ErrorMessage="CompareValidator"></asp:CompareValidator>

6:CustomValidator控件

可以用来运行用户自己的验证脚本

   <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator error" ClientValidationFunction="testMe" ControlToValidate="TextBox1" Display="None"></asp:CustomValidator>

 

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>验证页面</title>
  
<script language="javascript" type="text/javascript">
function testMe(source, arguments)
{
    
if(arguments.Value == "sa")//取得被比较控件的值
        arguments.IsValid = true;//通过验证
    else
       arguments.IsValid 
= false;
}
</script>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        
<hr />
    
</div>
        
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator error" ClientValidationFunction="testMe" ControlToValidate="TextBox1" Display="None"></asp:CustomValidator>
        
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1"
            ErrorMessage
="RequiredFieldValidator error" Display="None"></asp:RequiredFieldValidator>
        
<hr />
        
<asp:Button ID="Button1" runat="server" Text="提交" OnClick="Button1_Click" />
        
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List"
            Height
="1px" ShowMessageBox="True" ShowSummary="False" Width="228px" />
    
</form>
</body>
</html>

 

CheckUpdateAdmin.aspx是用来处理查询条件代码的。在这个页面中你可以设置相应的条件。我把我写的代码放在了后面。

<script language="javascript">
            function ValidationFunctionName(source, arguments)
                
{
                    var userName 
=document.getElementById("txtUserName");
                    var userpwd 
= document.getElementById("oldPwd")
                    var oBao 
= new ActiveXObject("Microsoft.XMLHTTP");
                    
//alert(userName.value);
                    
//alert(userpwd.value);
                    oBao.open("Get","CheckUpdateAdmin.aspx?username=" + userName.value+"&userpwd="+userpwd.value+"",false);  
                    oBao.send();
                    var strResult 
= oBao.responseText;

                    
//如果返回 1 就代表可以使用,否则不能通过验证
                    if (Number(strResult) == 1)
                        arguments.IsValid 
= true;    
                    
else
                        arguments.IsValid 
= false;
                }

        
</script>

 

下面是相应控件代码

 

<tr>
                                
<td width="29%" bgColor="#f0f0f0" height="22">
                                    
<div align="right">管理员昵称:</div>
                                
</td>
                                
<td width="71%" bgColor="#f0f0f0"><FONT face="宋体">
                                        
<asp:TextBox id="txtUserName" runat="server" Enabled="False"></asp:TextBox></FONT></td>
                            
</tr>
                            
<tr>
                                
<td width="29%" bgColor="#f0f0f0" height="22">
                                    
<div align="right">原始密码:</div>
                                
</td>
                                
<td width="71%" bgColor="#f0f0f0"><FONT face="宋体"><asp:textbox id="oldPwd" runat="server"></asp:textbox><asp:requiredfieldvalidator id="Requiredfieldvalidator1" runat="server" ErrorMessage="密码不能空!" ControlToValidate="txtEnBigClass"
                                            Display
="Dynamic"></asp:requiredfieldvalidator>
                                        
<asp:CustomValidator id="CustomValidator1" runat="server" ErrorMessage="对不起,你的原始密码不对!" ControlToValidate="oldPwd"
                                            ClientValidationFunction
="ValidationFunctionName"></asp:CustomValidator></FONT></td>
                            
</tr>

 

 

 

private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
            Response.Clear();
            
//string username = Request.QueryString["username"].ToString();
            
//string userpwd = Request.QueryString["userpwd"].ToString();
            if(bc.isnoAdminOldPwd(Request.QueryString["username"].ToString(),Request.QueryString["userpwd"].ToString())==true)
            
{
                Response.Write(
"0");
            }

            
else
            
{
                Response.Write(
"1");
            }


            Response.End();
        }

 

 这里有一点要说明的事,在传输Request.QueryString["username"]时,如果传的是中文会出现乱码,无法进行判断,这时你就要在web.config中下面这里,改成gb2312.就可以了。

 

<globalization 
            requestEncoding
="gb2312" 
            responseEncoding
="gb2312" 
   
/>

 

 

 

/// <summary>
        
/// 用来判断用户在修改密码的时候原始密码是否正确
        
/// </summary>
        
/// <param name="admin_name">用户的昵称</param>
        
/// <param name="admin_pwd">用户的原始密码</param>
        
/// <returns></returns>

        public bool isnoAdminOldPwd(string admin_name,string admin_pwd)
        
{
            
bool sve = false;
            SqlConnection conn 
= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
            conn.Open();
            SqlCommand cmd 
= new SqlCommand("",conn);
            cmd.CommandText 
= "select count(*) from C_admin where ltrim(rtrim(admin_name))='"+admin_name.Trim()+"' and ltrim(rtrim(admin_pwd))='"+admin_pwd.Trim()+"'";
            
int i = Convert.ToInt32(cmd.ExecuteScalar());
            
if(i>0)
            
{
                sve 
= false;
            }

            
else
            
{
                sve 
= true;
            }


            
return sve;
        }
posted on 2008-07-20 14:45  小顾问  阅读(1600)  评论(0)    收藏  举报