ASP.NET: Как лучше всего проверить 3 выпадающих списка, которые используются для выбора даты (месяц, день, год)? - PullRequest
3 голосов
/ 30 мая 2010

У меня есть два набора выпадающих для даты начала и окончания. Каждая дата создается путем выбора месяца, дня и года из трех отдельных раскрывающихся списков. В настоящее время у меня есть RequiredFieldValidators во всех раскрывающихся списках (в которых просто отображается *, если ничего еще не выбрано), но мне нужно проверить, что конечная дата больше начальной. Я могу позаботиться о логике сравнения дат, но с точки зрения используемого метода проверки, может ли кто-нибудь мне помочь (по сути, мне нужно проверить все 6 выпадающих меню одновременно)? Я попробовал пользовательскую проверку с использованием клиентского JavaScript, но не смог заставить его работать. Можете ли вы даже проверить несколько раскрывающихся списков с помощью элементов управления проверкой ASP.NET? (это то, что я хотел бы сделать - я всегда могу написать javascript, но пытался держаться подальше от этого).

Спасибо.

Ответы [ 2 ]

4 голосов
/ 30 мая 2010

Используйте пользовательский валидатор без элемента управления для проверки заполненного поля, затем используйте это на странице aspx:

<script type="text/javascript">
<!--
    ValidatorHookupControlID("<%= ctrl1.ClientID %>",
     $get("<%= customValidator.ClientID %>"));
    ValidatorHookupControlID("<%= ctrl2.ClientID %>",
     $get("<%= customValidator.ClientID %>"));
    ValidatorHookupControlID("<%= ctrl3.ClientID %>",
     $get("<%= customValidator.ClientID %>"));
//-->
</script>

Edit: Я нашел учебник, который лучше объясняет, что я имею в виду здесь

1 голос
/ 30 мая 2010

Вы должны рассмотреть возможность использования элемента управления календаря вместо трех выпадающих. Это даст вашим пользователям лучший опыт, и большинство элементов управления календарем в эти дни автоматически позаботятся о таких проблемах проверки даты, как високосные годы, локализованные имена и т. Д. На стороне сервера вы получите действительное значение DateTime для работы, и вы можете использовать стандартные операторы сравнения, чтобы определить, является ли одна Дата раньше другой.

Telerik обладает особенно хорошим управлением календарем. Вот демо:

http://demos.telerik.com/aspnet-ajax/calendar/examples/datepicker/validation/defaultcs.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...