ASP.NET 自定义的一个日期验证控件

ASP.NET 自定义的一个日期验证控件 using  System;
ASP.NET 自定义的一个日期验证控件
using  System.Collections.Generic;
ASP.NET 自定义的一个日期验证控件
using  System.Text;
ASP.NET 自定义的一个日期验证控件
using  System.Web.UI.WebControls;
ASP.NET 自定义的一个日期验证控件
using  System.IO;
ASP.NET 自定义的一个日期验证控件
using  System.Reflection;
ASP.NET 自定义的一个日期验证控件
using  System.Web.UI;
ASP.NET 自定义的一个日期验证控件
using  System.ComponentModel;
ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件
namespace  SmartWebControls
ASP.NET 自定义的一个日期验证控件
{
ASP.NET 自定义的一个日期验证控件    
/// <summary>
ASP.NET 自定义的一个日期验证控件    
/// 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件    
/// </summary>

ASP.NET 自定义的一个日期验证控件    [ToolboxData("<{0}:DateVidatetor runat=\"server\"></{0}:DateVidatetor>")]
ASP.NET 自定义的一个日期验证控件    
public class DateVidatetor :BaseValidator
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        
//服务器端double-check
ASP.NET 自定义的一个日期验证控件
        protected override bool EvaluateIsValid()
ASP.NET 自定义的一个日期验证控件        
{
ASP.NET 自定义的一个日期验证控件            
string value = base.GetControlValidationValue(ControlToValidate);
ASP.NET 自定义的一个日期验证控件            DateTime dateValue;
ASP.NET 自定义的一个日期验证控件            
if (DateTime.TryParse(value, out dateValue))
ASP.NET 自定义的一个日期验证控件            
{
ASP.NET 自定义的一个日期验证控件                
return true;
ASP.NET 自定义的一个日期验证控件            }

ASP.NET 自定义的一个日期验证控件            
else
ASP.NET 自定义的一个日期验证控件            
{
ASP.NET 自定义的一个日期验证控件                
return false;
ASP.NET 自定义的一个日期验证控件            }

ASP.NET 自定义的一个日期验证控件        }

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件        [Description(
"是否必须有值")]
ASP.NET 自定义的一个日期验证控件        
public bool MustHasValue
ASP.NET 自定义的一个日期验证控件        
{
ASP.NET 自定义的一个日期验证控件            
get
ASP.NET 自定义的一个日期验证控件            
{
ASP.NET 自定义的一个日期验证控件                
return ViewState["MustHasValue"== null ? false : (bool)ViewState["MustHasValue"];
ASP.NET 自定义的一个日期验证控件            }

ASP.NET 自定义的一个日期验证控件            
set { ViewState["MustHasValue"= value; }
ASP.NET 自定义的一个日期验证控件        }

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件        
protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
ASP.NET 自定义的一个日期验证控件        
{
ASP.NET 自定义的一个日期验证控件            
base.AddAttributesToRender(writer);
ASP.NET 自定义的一个日期验证控件            
if (base.RenderUplevel)
ASP.NET 自定义的一个日期验证控件            
{
ASP.NET 自定义的一个日期验证控件                
//指定客户端验证函数
ASP.NET 自定义的一个日期验证控件
                writer.AddAttribute("evaluationfunction""DateValidatorIsValid");
ASP.NET 自定义的一个日期验证控件                
//注册自定义属性
ASP.NET 自定义的一个日期验证控件
                writer.AddAttribute("mustHasValue", MustHasValue ? "1" : "0");
ASP.NET 自定义的一个日期验证控件            }

ASP.NET 自定义的一个日期验证控件        }

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件        
protected override void OnPreRender(EventArgs e)
ASP.NET 自定义的一个日期验证控件        
{
ASP.NET 自定义的一个日期验证控件            
base.OnPreRender(e);
ASP.NET 自定义的一个日期验证控件            
//从编译的DLL中取出JavaScript脚本
ASP.NET 自定义的一个日期验证控件
            Stream sm = Assembly.GetExecutingAssembly().GetManifestResourceStream("SmartWebControls.Common.js");
ASP.NET 自定义的一个日期验证控件            
string script;
ASP.NET 自定义的一个日期验证控件            
using (StreamReader sr = new StreamReader(sm))
ASP.NET 自定义的一个日期验证控件            
{
ASP.NET 自定义的一个日期验证控件                script 
= sr.ReadToEnd();
ASP.NET 自定义的一个日期验证控件            }

ASP.NET 自定义的一个日期验证控件            
//注册客户端JavaScript脚本
ASP.NET 自定义的一个日期验证控件
            if (!Page.ClientScript.IsClientScriptBlockRegistered("SmartWebControls.Common.js"))
ASP.NET 自定义的一个日期验证控件            
{
ASP.NET 自定义的一个日期验证控件                Page.ClientScript.RegisterClientScriptBlock(
this.GetType(), "SmartWebControls.Common.js", script);
ASP.NET 自定义的一个日期验证控件            }

ASP.NET 自定义的一个日期验证控件        }

ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件

Javascript文件:

 

ASP.NET 自定义的一个日期验证控件 < script language = " javascript " >
ASP.NET 自定义的一个日期验证控件
<!--
ASP.NET 自定义的一个日期验证控件
function  DateValidatorIsValid(val)
ASP.NET 自定义的一个日期验证控件
{
ASP.NET 自定义的一个日期验证控件    
var value = ValidatorGetValue(val.controltovalidate);
ASP.NET 自定义的一个日期验证控件    
var mustHasValue = val.mustHasValue;
ASP.NET 自定义的一个日期验证控件    
ASP.NET 自定义的一个日期验证控件    
if( value == "")
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        
//alert("Must input a value");
ASP.NET 自定义的一个日期验证控件
        if (mustHasValue =="1")
ASP.NET 自定义的一个日期验证控件            
return false;
ASP.NET 自定义的一个日期验证控件        
else
ASP.NET 自定义的一个日期验证控件            
return true;
ASP.NET 自定义的一个日期验证控件    }
    
ASP.NET 自定义的一个日期验证控件    
ASP.NET 自定义的一个日期验证控件    
return checkStringDate(value);
ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件
function  DateValidator2IsValid(val)
ASP.NET 自定义的一个日期验证控件
{
ASP.NET 自定义的一个日期验证控件    
var value = ValidatorGetValue(val.txtID);    
ASP.NET 自定义的一个日期验证控件    
ASP.NET 自定义的一个日期验证控件    
if( value == "")
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        
//alert("Must input a value");
ASP.NET 自定义的一个日期验证控件
        if (mustHasValue =="1")
ASP.NET 自定义的一个日期验证控件            
return false;
ASP.NET 自定义的一个日期验证控件        
else
ASP.NET 自定义的一个日期验证控件            
return true;
ASP.NET 自定义的一个日期验证控件    }
    
ASP.NET 自定义的一个日期验证控件    
ASP.NET 自定义的一个日期验证控件    
return checkStringDate(value);
ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件
function  checkStringDate(strDate)
ASP.NET 自定义的一个日期验证控件
{
ASP.NET 自定义的一个日期验证控件    
var reg=/^(\d{4})(\/)(\d{2})(\/)(\d{2})/;
ASP.NET 自定义的一个日期验证控件    
if(!reg.test(strDate))
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        alert(
"日期格式不正确!\n正确格式为:2004-01-01");
ASP.NET 自定义的一个日期验证控件        
return false;
ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件    
var ss=strDate.split("/");
ASP.NET 自定义的一个日期验证控件    
var year=ss[0];
ASP.NET 自定义的一个日期验证控件    
ASP.NET 自定义的一个日期验证控件    
var monthValue=ss[1];    
ASP.NET 自定义的一个日期验证控件    
if(monthValue.toString().substring(0,1)== "0")
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        monthValue 
= monthValue.toString().substring(1);
ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件    
ASP.NET 自定义的一个日期验证控件    
var date=ss[2];
ASP.NET 自定义的一个日期验证控件    
if(date.toString().substring(0,1)== "0")
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        date 
= date.toString().substring(1);
ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件    
if(!checkYear(year))
ASP.NET 自定义的一个日期验证控件        
{return false;}
ASP.NET 自定义的一个日期验证控件    
if(!checkMonth(monthValue))
ASP.NET 自定义的一个日期验证控件        
{return false;}
ASP.NET 自定义的一个日期验证控件    
if(!checkDate(year,monthValue,date))
ASP.NET 自定义的一个日期验证控件        
{return false;}
ASP.NET 自定义的一个日期验证控件    
return true;
ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件
function  checkYear(year) {
ASP.NET 自定义的一个日期验证控件    
if(isNaN(parseInt(year)))
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        alert(
"年份输入有误,请重新输入!"); 
ASP.NET 自定义的一个日期验证控件        
return false;
ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件    
else if(parseInt(year)<1950 || parseInt(year) >2050)
ASP.NET 自定义的一个日期验证控件    

ASP.NET 自定义的一个日期验证控件        alert(
"年份应该在1950-2050之间!"); 
ASP.NET 自定义的一个日期验证控件        
return false}

ASP.NET 自定义的一个日期验证控件    
else 
ASP.NET 自定义的一个日期验证控件        
return true;
ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件
function  checkMonth(monthValue)
ASP.NET 自定义的一个日期验证控件
{
ASP.NET 自定义的一个日期验证控件    
ASP.NET 自定义的一个日期验证控件    
if(isNaN(parseInt(monthValue)))
ASP.NET 自定义的一个日期验证控件    
{    
ASP.NET 自定义的一个日期验证控件        alert(
"月份输入有误,请重新输入!"); 
ASP.NET 自定义的一个日期验证控件        
return false;
ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件    
else if(parseInt(monthValue)<1 || parseInt(monthValue) >12)
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        alert(
"月份应该在1-12之间! " ); 
ASP.NET 自定义的一个日期验证控件        
return false
ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件    
else
ASP.NET 自定义的一个日期验证控件        
return true;
ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件
function  checkDate(year, monthValue, date)
ASP.NET 自定义的一个日期验证控件
{    
ASP.NET 自定义的一个日期验证控件    
var daysOfMonth=calcDays(parseInt(year),parseInt(monthValue));
ASP.NET 自定义的一个日期验证控件    
if(isNaN(parseInt(date)))
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        alert(
"日期输入有误,请重新输入!"); 
ASP.NET 自定义的一个日期验证控件        
return false;
ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件    
else if(parseInt(date)<0||parseInt(date)>daysOfMonth)
ASP.NET 自定义的一个日期验证控件    
{
ASP.NET 自定义的一个日期验证控件        alert(
"日期应该在1-"+daysOfMonth+"之间!"); 
ASP.NET 自定义的一个日期验证控件        
return false;
ASP.NET 自定义的一个日期验证控件    }

ASP.NET 自定义的一个日期验证控件    
else 
ASP.NET 自定义的一个日期验证控件        
return true;
ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件
function  calcDays(year, monthValue)
ASP.NET 自定义的一个日期验证控件
{    
ASP.NET 自定义的一个日期验证控件    
var date= new Date(year,monthValue,0);
ASP.NET 自定义的一个日期验证控件    
return date.getDate();
ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件
ASP.NET 自定义的一个日期验证控件
function  isLeapYear(year)
ASP.NET 自定义的一个日期验证控件
{
ASP.NET 自定义的一个日期验证控件    
if( (year %4==0 && year %100!=0|| (year %400==0)) 
ASP.NET 自定义的一个日期验证控件        
return true;
ASP.NET 自定义的一个日期验证控件    
else
ASP.NET 自定义的一个日期验证控件        
return false;
ASP.NET 自定义的一个日期验证控件}

ASP.NET 自定义的一个日期验证控件
// -->
ASP.NET 自定义的一个日期验证控件
</ script >

你可能感兴趣的:(asp.net)