Отображение модального окна после обратной передачи без ASP.NET Ajax

У меня есть кнопка ASP.NET. При нажатии кнопки я хотел бы, чтобы модальное всплывающее окно отображалось после запуска кода на стороне сервера для кнопки. Я не хочу использовать модальный расширитель всплывающих окон набора средств управления ASP.NET Ajax.

С помощью ASP.NET Ajax я могу подключиться к событию конечного запроса. Есть ли способ сделать это без ASP.NET Ajax. просто jQuery? Я в основном хочу запустить javascript после запуска кода щелчка на стороне сервера после обратной передачи.


person Steve    schedule 16.08.2010    source источник


Ответы (2)


Это зависит от того, какой метод вы собираетесь использовать для запуска обратной передачи через jQuery. Если вы собираетесь использовать асинхронную обратную передачу (например, jQuery.ajax), вы можете просто предоставить метод для вызова после завершения обратной передачи. См. http://api.jquery.com/jQuery.ajax/.

Если вы просто собираетесь использовать обычную обратную передачу, вы можете использовать Page.ClientScript.RegisterClientScriptBlock из вашего серверного метода, чтобы зарегистрировать скрипт, который будет запускаться после завершения обратной передачи.

person Jason    schedule 16.08.2010

Для этого можно использовать ScriptManager.RegisterStartupScript(), что-то вроде этого:

ScriptManager.RegisterStartupScript(MyUpdatePanel, GetType(), "post-load-script",
  "$(function() { $('#dialog').dialog(); });", true);

Затем возвращается запрос от UpdatePanel, он будет запускать это:

$(function() { 
  $('#dialog').dialog(); 
});

Конечно, вы можете поместить туда все, что хотите для сценария, но если вы просто используете метку или что-то еще в #dialog <div>, которое заполняется как часть обновления, это отобразит это (если вы используете диалоговое окно jQuery UI, есть и другие). Концепция очень общая, вы просто регистрируете некоторый JavaScript для запуска, когда возвращается асинхронный запрос, и какой модальный режим и как вы хотите это сделать, очень открыт.

person Nick Craver    schedule 16.08.2010