Проверка ASP.Net для количества дней между днями прибытия и отправления - PullRequest
0 голосов
/ 12 мая 2011

У меня есть требование, по которому нужно проверять валидацию между количеством дней, введенных между двумя селекторами дат [С и по датам].Мое требование состоит в том, чтобы оно не превышало 100 дней.

Есть ли способ, которым я могу сделать с помощью валидаторов asp.net.Я могу пойти дальше и написать для него customvalidator (как на стороне клиента, так и на стороне сервера), но мне интересно, можно ли это сделать с помощью CompareValidator или RangeValidator?

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Попробуйте использовать пользовательский валидатор:

  <asp:CustomValidator ID="valCustmCheckDate" runat="server" ErrorMessage="The date   difference should not be greater than 100 days" ForeColor="Red" ValidationGroup="LoginUserAdd" ClientValidationFunction="CompareStartAndEndDate"></asp:CustomValidator>   

Вызовите следующую функцию в javascript:

 function CompareStartAndEndDate(sender,args) {
    var txtFromExpiryDate = document.getElementById('<%=txtFromDate.ClientID %>');//dd/mm/yyyy format
    var txtToExpiryDate = document.getElementById('<%=txtToDate.ClientID %>');//dd/mm/yyyy format

     var a = txtFromDate.value.split('/');
     var b = txtToDate.value.split('/');

     var FromDate = new Date(a[2], a[1] - 1, a[0]);
     var ToDate = new Date(b[2], b[1] - 1, b[0]);

      var newFromDate =FromDate.getTime();
      var newToDate=ToDate.getTime();

      var dateDiffInMilliseconds= newToDate-newFromDate;

     var dateDiffInDays=dateDiffInMilliseconds/(1000 * 60 * 60 * 24)       


    if (dateDiffInDays>100 ) {
            args.IsValid = false;
     }
     else {
             args.IsValid = true;
     }

  }

Надеюсь, это поможет вам ...

0 голосов
/ 12 мая 2011

Функция ниже будет работать, если вы ищете аналогичный ответ

        function CheckDateRange(start, end, numberOfDays) {

        // Parse the entries
        var startDate = Date.parse(start);
        var endDate = Date.parse(end);
        // Make sure they are valid
        if (isNaN(startDate)) {
            alert("The start date provided is not valid, please enter a valid date.");
            return false;
        }
        if (isNaN(endDate)) {
            alert("The end date provided is not valid, please enter a valid date.");
            return false;
        }
        // Check the date range, 86400000 is the number of milliseconds in one day
        var difference = (endDate - startDate) / (86400000 * numberOfDays);
        if (difference < 0) {
            alert("The start date must come before the end date.");
            return false;
        }
        if (difference >= 1) {
            alert("The range must not exceed 100 days.");
            return false;
        }
        return true;
    }

Получил помощь от похожей записи

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