Как сделать простое да / нет всплывающее окно в ASP.NET, которые возвращают результат обратно в мой C#?

С ASP.NET, как я могу запросить у пользователя вопрос "да / нет" и получить результат обратно в мой.ascx?

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

8 ответов

Решение

Вы можете использовать стандартный JavaScript confirm() функция для показа всплывающих окон и выполнения Post Back в случае Да или Нет. Например:

if (confirm('Question')) {
    __doPostBack('', 'Yes_clicked');
} else {
    __doPostBack('', 'No_clicked')
}  

Затем на сервере в Page_Load() метод сделать:

if (IsPostBack)
{
    var result = Request.Params["__EVENTARGUMENT"];
}

Вы также можете сделать это асинхронно, указав первый параметр __doPostBack() функционировать как идентификатор любой панели обновления.

Добавить это в голову источника

function verify_Edit() { if (verify ("Вы действительно хотите редактировать?")==true) return true; иначе вернуть ложь; }

называть это так

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

но если вы хотите сделать это, это поможет вам:

Простое управление сервером ASP.NET: окно сообщения и окно подтверждения

Если вы настаиваете на использовании веб-форм, другим решением может быть комплект управления AJAX. Просто создайте ModalPopup и попросите подтвердить кнопки внутри этого.

Подробнее читайте здесь: http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ModalPopup/ModalPopup.aspx

Я использую это. Насколько я знаю, это предотвращает выполнение остальной части события кнопки.

btnMyButton.Attributes.Add("onClick", "return confirm('Are you really sure?')");

Другой вариант - показать да / нет:

<script>     
        function AlertFunction() {
            if (confirm('Are you sure you want to save this thing into the database?')) {
               $('#ConfirmMessageResponse').val('Yes');
            } else {
                $('#ConfirmMessageResponse').val('No');
            }
        }
    </script>

обрабатывать это со стороны.net:

string confirmValue = ConfirmMessageResponse.Value;
                if (confirmValue == "Yes")
                {...}

Вам нужно использовать ajax или сделать обратную передачу на сервер. Ваш код C# на стороне сервера, а javascript на стороне клиента. Если вы используете расширения ajax для asp .net, вы можете использовать методы страницы javascript:

PageMethods.YourMethod(confirm('your text'), OnSuccess, OnFailure);

строка confirmValue = ConfirmMessageResponse.Value; показывает ошибку в этой строке при использовании на стороне .net

Другие вопросы по тегам