ASP.NET — UpdatePanel и JavaScript
-
03-07-2019 - |
Вопрос
Есть ли способ выполнить скрипт после завершения процесса UpdatePanel.
У меня есть страница, которая позволяет «вставлять», «копировать» и «редактировать» записи.Все это делается в UpdatePanel, чтобы предотвратить навигацию по страницам.Где -то еще на странице я хотел бы распечатать сообщение «Flash» - например, «Вы успешно ввели запись». Это не близко к Panepanel, и я хотел бы использовать эффект jQuery на сообщение, чтобы он исчезал через 4 секунды.Как я могу отправить сценарий обратно с помощью UpdatePanel или выполнить его после обновления UpdatePanel?Должен ли я написать сценарий для asp:literal?мысли?
Другие советы
Это должно сработать:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
//Jquery Call
}
function EndRequestHandler(sender, args)
{
//Jquery Call
}
</script>
Вот статья о том, как это сделать, используя статический метод ScriptManager RegisterClientScriptBlock. Пробовал и работает как шарм.
http://csharperimage.jeremylikness.com /2009/06/inject-dynamic-javascript-into-aspnet.html р>
var requestManager = Sys.WebForms.PageRequestManager.getInstance();
requestManager.add_beginRequest(function () { alert('here1') });
requestManager.add_endRequest(function () { alert(here2') });
Источник: http://www.howtositecore.com/?p=36 р>
Метод Sys.WebForms.PageRequestManager.getInstance () прекрасно работает и для меня. Р>
Я работаю со многими страницами, которые содержат несколько панелей обновления, и я узнал, что это автоматически сработает, даже если панель обновлений вам не нужна для обновления. Поэтому внутри функции, которая запускает событие, убедитесь, что у вас есть что-то вроде:
function BeginRequestHandler(sender, args) {
if (args.get_postBackElement().id == "ID of the Updatepanel") {
// do stuff here
Бруно,
Во-первых, чтобы ответить на ваш прямой вопрос.В обратном вызове, вызываемом панелью обновления, вы должны иметь возможность использовать вызов RegisterStartupScript для вызова метода JS.Затем в вашем методе JS вы отобразите сообщение, а затем сможете использовать do:
setTimeout('$('#myMessage').fadeOut("slow")', 4000);
чтобы он исчез через 4 секунды.
Чтобы пойти еще дальше, поскольку вы уже реализуете JavaScript, я бы предложил вам проверить эта статья об UpdatePanels.Если возможно, я бы попытался отправлять вызовы Ajax для вставки, копирования и редактирования, и это еще больше упростило бы вашу обратную связь с пользователем и предотвратило бы передачу лишней информации по сети.