当用户在文本框中插入所选日期时,日期不能是旧日期或今天日期我可以使用什么验证规则?
我也不确定要使用哪个验证器控件。
对于这种非标准情况,您需要使用 a CustomValidator
,这将要求您编写服务器端验证函数。MSDN 在这里有详细信息:
http://msdn.microsoft.com/en-us/library/9eee01cx(v=vs.100).aspx
一种方法是使用 aCustomValidator
和ServerValidate
这样的:
<asp:CustomValidator runat="server"
ID="CustDateValidator"
ControlToValidate="txtDate"
onservervalidate="CustDateValidator_ServerValidate"
ErrorMessage="enter valid date in the future" />
代码隐藏:
protected void CustDateValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
DateTime dt;
args.IsValid = (DateTime.TryParse(args.Value, out dt)
&& dt > DateTime.Today);
}
如果需要,您也可以提供ClientValidationFunction
(实施取决于您)。
注意:如果输入控件为空,则不调用验证函数并且验证成功。
如果你需要确保它不是空的,那么你也需要一个RequiredFieldValidator
。