如何在asp.net日历控件中验证日期 [英] How to validate date in asp.net calendar control
本文介绍了如何在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屋!
查看全文