ASP.NET:验证用于选择日期(月,日,年)的3个下拉框的最佳方法是什么?

时间:2010-05-30 02:07:10

标签: asp.net validation

我有两组关于开始日期和结束日期的下拉菜单。通过从3个单独的下拉菜单中选择月,日和年来创建每个日期。我目前在所有下拉列表中都有RequiredFieldValidators(如果尚未选择任何内容,则只显示*),但我需要验证结束日期是否大于开始日期。我可以处理比较日期背后的逻辑,但就使用的验证方法而言,有人可以帮助我(我基本上需要同时验证6次下拉)吗?我尝试使用客户端javascript进行自定义验证,但无法使其工作。你甚至可以使用ASP.NET验证控件验证多个下拉菜单吗? (这是我想做的 - 我总是可以写javascript,但是试图远离这个。)

感谢。

2 个答案:

答案 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