Использование окна сообщений Yes / No в панели обновлений AJAX - PullRequest
0 голосов
/ 15 мая 2009

У меня есть требование, когда я запрашиваю у пользователя подтверждение, а также отображаю сообщения.

Программисты, используемые для этого, были из фона форм Windows. Следовательно, использовали MsgBox в каждом уголке. Даже в части бизнес-логики они использовали ящики сообщений, для которых требуется подтверждение стиля «Да / Нет» от пользователя.

Когда мы тестировали сайт с удаленной машины, мы обнаружили, что он выдает ошибку использования DefaultDesktopOnly / ServiceNotification. Но при тестировании мы обнаружили, что это полностью отличается от того, что мы искали.

Теперь мое требование - это окно подтверждения, отображаемое из кода типа Удалить запись "да нет, и на основании ответа мы предпринимаем действие.

Это необходимо сделать с помощью панели обновления.

Ответы [ 4 ]

1 голос
/ 15 мая 2009

Поскольку вы используете этот код в нескольких местах, я предлагаю вам создать собственный элемент управления, который принимает ваше сообщение и отображает панель обновления с сообщением и кнопками да / нет.

Внутренне установите некоторое значение для да, нет, отмена ... так, чтобы вы получили что-то вроде MessageBox.

0 голосов
/ 15 мая 2009

Это на самом деле не вопрос, а требование.

В любом случае ... MessageBox - это функция Windows, это не функция HTML или браузер. Теперь вы можете имитировать его одним из двух способов: с помощью функции JavaScript подтверждение или с помощью кнопок Да / Нет и соответствующего события.

Учитывая, что ваши требования касаются чего-то, что работает в панели обновлений, я бы предположил, что ручная передача событий javascript для этого не будет чем-то удобным для вас, поэтому я бы предложил asp: Panel внутри UpdatePanel, который имеет кнопки «да» и «нет», с привязанными к ним событиями на стороне сервера. В логике UpdatePanel покажите это, когда вам нужно подтверждение, и спрячьте все остальное, действуйте соответственно.

0 голосов
/ 15 мая 2009

Если вы хотите выполнять подтверждения на стороне сервера, вы попадаете в более сложную генерацию кода. Прежде всего, у вас будет два представления . У первого есть ссылка / кнопка delete , но на самом деле это будет просто обратная передача ко второму представлению, в котором будет отображаться подтверждение в форме с указанием да / нет. В этой форме ваша кнопка yes фактически будет вашим delete action ...

Но я все же выбрал бы гибрид (особенно если речь идет о сетке, о которой мы говорим), javascript и serverside (поскольку alert() и confirm() являются злом с точки зрения пользовательского опыта):

  1. у вас есть кнопка ссылки удалить
  2. когда пользователь нажимает на него, вы заменяете этот элемент управления на div, который отображает две кнопки ссылки да / нет
  3. отправить сообщение с одним из двух

Добавление

  • Нет Кнопка ссылки может быть просто фиктивной, чтобы скрыть это подтверждение и снова отобразить удалить - так что это означает, что сервер не будет работать в обоих направлениях
  • Вы можете даже создать пользовательский контроль, который имитирует это сложное удаление ссылок, чтобы сделать его многократно используемым для всего приложения.
0 голосов
/ 15 мая 2009

Обновлять панель или нет, вам придется прикрепить некоторый javascript, который будет вызывать confirm() функцию javascript. На основании его результата вы отменяете поведение ссылки / кнопки javascript по умолчанию ...

Это даст вам возможность почесать голову для начала:
http://www.dotnetfunda.com/tutorials/ajax/updatepanel.aspx

...