我有两组关于开始日期和结束日期的下拉菜单。通过从3个单独的下拉菜单中选择月,日和年来创建每个日期。我目前在所有下拉列表中都有RequiredFieldValidators(如果尚未选择任何内容,则只显示*),但我需要验证结束日期是否大于开始日期。我可以处理比较日期背后的逻辑,但就使用的验证方法而言,有人可以帮助我(我基本上需要同时验证6次下拉)吗?我尝试使用客户端javascript进行自定义验证,但无法使其工作。你甚至可以使用ASP.NET验证控件验证多个下拉菜单吗? (这是我想做的 - 我总是可以写javascript,但是试图远离这个。)
感谢。
答案 0 :(得分:4)
使用不带控件的自定义验证程序验证已完成的字段,然后在您的aspx页面中使用它:
<script type="text/javascript">
<!--
ValidatorHookupControlID("<%= ctrl1.ClientID %>",
$get("<%= customValidator.ClientID %>"));
ValidatorHookupControlID("<%= ctrl2.ClientID %>",
$get("<%= customValidator.ClientID %>"));
ValidatorHookupControlID("<%= ctrl3.ClientID %>",
$get("<%= customValidator.ClientID %>"));
//-->
</script>
编辑: 我找到了一个更好地解释我的意思here
的教程答案 1 :(得分:1)
您应该考虑使用日历控件而不是三个下拉菜单。它将为您的用户提供更好的体验,如今大多数日历控件都会自动处理日期验证问题,如闰年,本地化名称等。在服务器端,您最终会获得一个有效的DateTime值,您可以使用标准比较运算符来确定一个Date是否在另一个之前。
Telerik有一个特别好的日历控件。这是一个演示:
http://demos.telerik.com/aspnet-ajax/calendar/examples/datepicker/validation/defaultcs.aspx