Использование окна сообщений «Да/Нет» в панели обновлений AJAX
-
22-08-2019 - |
Вопрос
У меня есть требование: я запрашиваю у пользователя подтверждение, а также показываю сообщения.
Программисты, использованные для этого, были из среды Windows Forms.Поэтому мы использовали MsgBox в каждом уголке.Даже в части бизнес-логики они использовали ящики сообщений, которые требуют подтверждения стиля Да/Нет от пользователя.
Когда мы протестировали сайт с удаленного компьютера, мы обнаружили, что он выдает ошибку использования DefaultDesktopOnly/ServiceNotification.Но при тестировании мы обнаружили, что это полностью отличается от того, что мы искали.
Теперь мое требование: в коде отображается окно подтверждения, например «Удалить запись» «да нет», и на основании ответа мы предпринимаем действие.
Это нужно сделать с помощью updatepanel.
Решение
Поскольку вы используете этот код в нескольких местах, я предлагаю вам создать собственный элемент управления, который принимает ваше сообщение и отображает панель «Обновить» с кнопками «Сообщение» и «Да/Нет».
Внутренне установите какое-то значение для да, нет, отмены...так что вы получите что-то вроде MessageBox.
Другие советы
Обновлять панель или нет, вам придется прикрепить какой-нибудь javascript, который будет вызывать confirm()
функция JavaScript.На основании этого результата вы отменяете поведение ссылки/кнопки по умолчанию в javascript...
Это даст вам возможность почесать голову для начала:
http://www.dotnetfunda.com/tutorials/ajax/updatepanel.aspx
Это не совсем вопрос, а требование.
В любом случае ...MessageBox — это функция Windows, а не функция HTML или браузера.Теперь вы можете имитировать это одним из двух способов: через JavaScript. подтверждать функцию или с помощью кнопок Да/Нет и соответствующего события.
Учитывая, что ваши требования связаны с чем-то, что работает на панели обновлений, я предполагаю, что подключение событий JavaScript вручную для этого не будет для вас удобным, поэтому я бы предложил asp:Panel внутри UpdatePanel, который имеет кнопки «да» и «нет» с привязанными к ним событиями на стороне сервера.В логике UpdatePanel покажите это, когда вам нужно подтверждение, и скройте все остальное, действуйте соответствующим образом.
Если вы хотите выполнить подтверждение на стороне сервера, вам придется столкнуться с более сложной генерацией кода.Прежде всего, у вас будет два Просмотры.На первом есть ссылка/кнопка удалить но на самом деле это будет просто обратная передача ко второму представлению, которое отобразит подтверждение форма с да/нет.В этой форме ваш да кнопка на самом деле будет вашей удалить действие...
Но я бы все равно выбрал гибрид (особенно если речь идет о сетке) javascript и серверной части (поскольку alert()
и confirm()
являются злом с точки зрения пользовательского опыта):
- у вас есть кнопка ссылки удалить
- когда пользователь нажимает на него, вы заменяете этот элемент управления элементом div, который отображает две кнопки ссылок да/нет
- отправить постбэк с одним из двух
Приложение
- Нет кнопка ссылки может быть просто фиктивной, чтобы скрыть это подтверждение и отобразить удалить еще раз - это означает, что никакого путешествия по серверу туда и обратно не будет.
- вы могли бы даже создать пользовательский элемент управления, имитирующий это сложный удалить поведение ссылки, чтобы сделать ее многоразовой для всего приложения.