如何在asp.net日历控件中验证日期 [英] How to validate date in asp.net calendar control

查看:60
本文介绍了如何在asp.net日历控件中验证日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想确认出生日期应该小于当前日期,入场日期应该大于当前日期。我该怎样做

解决方案

  1 )在 aspx页面中创建隐藏字段控件  命令,以使服务器日期而不是客户机日期

< asp:HiddenField ID = hdnCurrentDate runat = server />

2 )将日期转换为所需格式来自代码后面的aspx.cs代码file

// 将当前日期值设置为隐藏字段
// 此当前日期发送给函数以检查
// 出生日期
hdnCurrentDate.Value = DateTime.Now.ToString( dd-MM-yyyy);


3 )为
所需的日期添加自定义验证器字段

< asp:CustomValidator ID = custDateOfBirth runat = < span class =code-string>
server ControlToValidate = txtBirthDate ClientValidationFunction = CheckDate ErrorMessage = 输入小于当前日期 CssClass = ClsRedtext SetFocusOnError = true > < / asp:CustomValidator &g t;
4 )编写一个javascript函数来处理验证

< script >
函数CheckDate(oSrc,args)
{
// 以下两个ID是aspx文件的查看源
// 相应的控件一个是输入日期,另一个是隐藏的字段日期
/ / ('ctl00_ContentPlaceHolder1_txtBirthDate')
// ('ctl00_ContentPlaceHolder1_hdnCurrentDate')
var dateOfBirthClientID = document.getElementById(' ctl00_ContentPlaceHolder1_txtBirthDate');
var systemDateClientID = document.getElementById(' ctl00_ContentPlaceHolder1_hdnCurrentDate');

var dateOfBirth = dateOfBirthClientID。 value ;
var systemDate = systemDateClientID。 value ;

var ArrDob = dateOfBirth.split( - );

var DobMonth = ArrDob [ 0 ];
var DobDate = ArrDob [ 1 ];
var DobYear = ArrDob [ 2 ];

var ArrSysDate = systemDate.split( - );

var SysDate = ArrSysDate [ 0 ];
var SysMonth = ArrSysDate [ 1 ];
var SysYear = ArrSysDate [ 2 ];

// alert(DobYear =+ DobYear +SysYear =+ SysYear + DobMonth =+ DobMonth +SysMonth =+ SysMonth +DobDate =+ DobDate +SysDate =+ SysDate);

if (DobYear > SysYear)
{
args.IsValid = false ;
return ;
}
其他 如果((DobYear == SysYear)&& (DobMonth > SysMonth))
{
args.IsValid = false ;
return ;
}

else if ((DobYear == SysYear) &&(DobMonth == SysMonth)&&(DobDate > SysDate))
{
args.IsValid = ;
return ;
}
args.IsValid = true ;
}
< / script >


参考:

Calendar.SelectedDate Property [ ^ ]

DateTime.Today Property [ ^ ]

C#示例代码:

  if (CalendarDob .SelectedDate <  DateTime.Today)
{


}


I want to validate that the date of birth should be less than current date and admission date should be greater than current date.How can I do this

解决方案

1)Create a hidden field control in aspx page in order to have server date rather than client machine date

<asp:HiddenField ID="hdnCurrentDate"  runat="server" />

2)Convert the date to required format from code behind aspx.cs file

//Setting the current date value to hidden field
//This Current date is sent to a function to check the
//Date Of Birth
hdnCurrentDate.Value = DateTime.Now.ToString("dd-MM-yyyy");


3)Add a Custom validator for the required date field

<asp:CustomValidator ID="custDateOfBirth"  runat="server"   ControlToValidate="txtBirthDate" ClientValidationFunction="CheckDate" ErrorMessage="Enter less than the current date" CssClass="ClsRedtext"  SetFocusOnError="true"></asp:CustomValidator>
4)Write a javascript function to handle the validation

<script>
function CheckDate(oSrc,args)
{
//The below two ids are view source of the aspx file
//of the respective controls one is Entered date and the other is hidden field date
//('ctl00_ContentPlaceHolder1_txtBirthDate')
//('ctl00_ContentPlaceHolder1_hdnCurrentDate')
var dateOfBirthClientID =  document.getElementById('ctl00_ContentPlaceHolder1_txtBirthDate');
var systemDateClientID =  document.getElementById('ctl00_ContentPlaceHolder1_hdnCurrentDate');

       var dateOfBirth = dateOfBirthClientID.value;
       var systemDate = systemDateClientID.value;

       var ArrDob =   dateOfBirth.split("-");

       var DobMonth = ArrDob[0];
       var DobDate   = ArrDob[1];
       var DobYear   = ArrDob[2];

       var ArrSysDate =   systemDate.split("-");

       var SysDate   = ArrSysDate[0];
       var SysMonth = ArrSysDate[1];
       var SysYear   = ArrSysDate[2];

       //alert("DobYear="+DobYear+"SysYear ="+SysYear +"DobMonth="+DobMonth+"SysMonth="+SysMonth+"DobDate="+DobDate+"SysDate="+SysDate);

       if(DobYear > SysYear)
       {
               args.IsValid = false;
               return;
       }
       else if((DobYear == SysYear) && (DobMonth > SysMonth))
       {
               args.IsValid = false;
               return;
       }

        else if((DobYear == SysYear) && (DobMonth == SysMonth) && (DobDate > SysDate))
       {
               args.IsValid = false;
               return;
       }
        args.IsValid = true;
   }
</script>


refer:
Calendar.SelectedDate Property[^]
DateTime.Today Property[^]
C# sample code:

if( CalendarDob.SelectedDate < DateTime.Today)
{


}


这篇关于如何在asp.net日历控件中验证日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆