Как переключить окно подтверждения сообщения со страницы aspx.cs - PullRequest
0 голосов
/ 02 декабря 2008

У меня есть программа поиска, которая будет искать базу данных из базы данных. Если диапазон дат превышает 3 недели, я хочу предупредить их, что это может занять некоторое время со всеми данными в базе данных. У меня есть окно подтверждения сообщения в функции JavaScript. Я хочу проверить диапазон дат на странице aspx.cs. Как я могу заполнить окно сообщения на основе этих критериев? Вот копия моего кода на HTML. Я не уверен, как подойти к контрольно-пропускному пункту.

function warning() {            
   var answer = confirm("The date range you have selected will return a substantial amount of data and will take some time to process.\n\nAre you sure you want to continue?");
   if (answer)
      return true;
   else
      return false;
}

Ответы [ 4 ]

2 голосов
/ 02 декабря 2008

Окно подтверждения, которое открывается, появляется при нажатии кнопки

SearchButton.Attributes.Add("onclick", "javascript:return " + "confirm('" + 
"The date range you have selected will return a substantial amount of data and will take some time to process.\n\nAre you sure you want to continue?')");
0 голосов
/ 02 декабря 2008

Если кнопка является кнопкой отправки, добавьте ее в onclick (). Истинное возвращаемое значение позволит странице продолжить отправку, а ложное остановит обратную передачу (отправка).

РЕДАКТИРОВАТЬ: Просто попробуйте, прежде чем сказать, что это не правильно. Это выглядит сложно, но довольно просто. Получить первое свидание, получить второе свидание, сравнить их. Если разница меньше 3 недель, верните true и разрешите странице отправлять обратно (отправить), иначе предупредите пользователя и верните свой ответ.

Функция ...

function warning() {            

    var ele;
    var startDate;
    var endDate;
    var threeWeeksInMilliseconds = 1814400000; //1000 ms * 60 sec * 60 min * 24 hr * 21 days

    //get starting value
    ele = document.getElementById('txtStartDate');
    if (ele == 'undefined'){
        return false; //no start element
    }
    else {
        try{
            startDate = new Date(ele.value);
        }
        catch (e) {
            return false;
        }
    }

    //get the ending value
    ele = document.getElementById('txtEndDate');
    if (ele == 'undefined'){
        return false; //no start element
    }
    else {
        try{
            endDate = new Date(ele.value);
        }
        catch (e) {
            return false;
        }
    }

    //getTime() returns milliseconds
    if ((endDate.getTime() - startDate.getTime()) < threeWeeksInMilliseconds) {
        return true;
    }
    //else present the message for confirmation.

    var msg = "The date range you have selected will return a substantial " + "" +
            "amount of data and will take some time to process.\n\n" + 
            "Are you sure you want to continue?";
    var answer;

    answer = confirm(msg);

    if (answer) {
        return true;
    }
    else {
        return false;
    }

    //default return condition - nothing should get here so this indicates an error.
    //Use true if you want to allow this to process. 
    return false;
}
0 голосов
/ 02 декабря 2008

Вам лучше проверить диапазон дат на стороне клиента и вызвать окно сообщения через JS перед вызовом обратной передачи.

0 голосов
/ 02 декабря 2008

Зачем проверять диапазон дат на стороне сервера? Если у вас есть диапазон дат на стороне клиента, это значительно меньше работы.

В противном случае вам нужно будет распаковать (или частично опубликовать), а затем проверить диапазон дат, а затем вывести предупреждающий JavaScript обратно на страницу ...

Время переосмыслить ваш метод.

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