我有两个TextBox
控制开始日期和结束日期输入。我必须验证结束日期不大于开始日期,并且开始日期和结束日期之间的差异不超过 12 个月。
你将不得不使用一个CustomValidator http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.aspx去做这个。在你的 markyou 中,你会看到这样的内容:
<asp:TextBox ID="txbStartDate" runat="server" />
<asp:TextBox ID="txbEndDate" runat="server" />
<asp:CustomValidator OnServerValidate="ValidateDuration"
ErrorMessage="Dates are too far apart" runat="server" />
在后面的代码中,您定义验证处理程序:
protected void ValidateDuration(object sender, ServerValidateEventArgs e)
{
DateTime start = DateTime.Parse(txbStartDate.Text);
DateTime end = DateTime.Parse(txbEndDate.Text);
int months = (end.Month - start.Month) + 12 * (end.Year - start.Year);
e.IsValid = months < 12.0;
}
注意上面的代码是容易抛出异常。您将需要添加额外的验证器来检查输入的日期是否可以被解析,并且ValidateDuration
在进行自己的测试之前,应该修改方法以确认这些其他验证器已通过。
此外,您可能还想添加另一个验证器来测试结束日期实际上是否大于(或等于)开始日期。违反此规则可能会引发其自己的验证错误消息。
<asp:CompareValidator Operator="GreaterThanEqual" Type="Date"
ControlToValidate="txbEndDate" ControlToCompare="txbStartDate"
ErrorMessage="Let's get started first!" runat="server" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)