对于日期选择,我们经常使用 WebDateChooser控件,当涉及到开始日期与结束日期的时候,就需要验证日期的合法性,这种情况在开发过程中经常遇到,所以我们可以编写一个通用的方法在客户端就验证日期的合法性,而不必等到提交到服务器才进行验证,方法如下:
public void BindCompareDateChoosers(Control userControl,Infragistics.WebUI.WebSchedule.WebDateChooser beginDateChooser, Infragistics.WebUI.WebSchedule.WebDateChooser endDateChooser)
{
string compareJS = "<script language=javascript>" +
"function CompareDate(oCalendar, newValue, oEvent) " +
"{" +
" var dateChooserBegin = igdrp_getComboById('" + beginDateChooser.ClientID + "'); " +
" var dateChooserEnd = igdrp_getComboById('" + endDateChooser.ClientID + "'); " +
" if(oCalendar==dateChooserBegin.Calendar)" +
" {" +
" var dateBegin=newValue;" +
" var dateEnd = dateChooserEnd.getValue();" +
" var dateEndText = dateChooserEnd.getText();" +
" if(dateEndText!='---请选择---' && dateEndText!='' && dateBegin>dateEnd)" +
" {" +
" alert('选择日期区间时,起始日期不能晚于截止日期!'); " +
" oEvent.cancel = true;" +
" }" +
" }" +
" if(oCalendar==dateChooserEnd.Calendar)" +
" {" +
" var dateBegin=dateChooserBegin.getValue();" +
" var dateEnd = newValue;" +
" var dateBeginText = dateChooserBegin.getText(); " +
" if(dateBeginText!='---请选择---' && dateBeginText!='' && dateBegin>dateEnd)" +
" {" +
" alert('选择日期区间时,起始日期不能晚于截止日期!'); " +
" oEvent.cancel = true;" +
" }" +
" }" +
"}" +
"</script>";
userControl.Page.ClientScript.RegisterStartupScript(userControl.GetType(), "CompareDate", compareJS);
beginDateChooser.ClientSideEvents.CalendarValueChanging = "CompareDate";
endDateChooser.ClientSideEvents.CalendarValueChanging = "CompareDate";
}
{
string compareJS = "<script language=javascript>" +
"function CompareDate(oCalendar, newValue, oEvent) " +
"{" +
" var dateChooserBegin = igdrp_getComboById('" + beginDateChooser.ClientID + "'); " +
" var dateChooserEnd = igdrp_getComboById('" + endDateChooser.ClientID + "'); " +
" if(oCalendar==dateChooserBegin.Calendar)" +
" {" +
" var dateBegin=newValue;" +
" var dateEnd = dateChooserEnd.getValue();" +
" var dateEndText = dateChooserEnd.getText();" +
" if(dateEndText!='---请选择---' && dateEndText!='' && dateBegin>dateEnd)" +
" {" +
" alert('选择日期区间时,起始日期不能晚于截止日期!'); " +
" oEvent.cancel = true;" +
" }" +
" }" +
" if(oCalendar==dateChooserEnd.Calendar)" +
" {" +
" var dateBegin=dateChooserBegin.getValue();" +
" var dateEnd = newValue;" +
" var dateBeginText = dateChooserBegin.getText(); " +
" if(dateBeginText!='---请选择---' && dateBeginText!='' && dateBegin>dateEnd)" +
" {" +
" alert('选择日期区间时,起始日期不能晚于截止日期!'); " +
" oEvent.cancel = true;" +
" }" +
" }" +
"}" +
"</script>";
userControl.Page.ClientScript.RegisterStartupScript(userControl.GetType(), "CompareDate", compareJS);
beginDateChooser.ClientSideEvents.CalendarValueChanging = "CompareDate";
endDateChooser.ClientSideEvents.CalendarValueChanging = "CompareDate";
}
我们可以在页面或者控件的Page_Load函数里直接调用BindCompareDateChoosers(this,beginDateChooser,endDateChooser)来绑定验证日期的脚本。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1534780