Подтвердить что ты не робот

Событие Javascript на странице обратной передачи

Есть ли какое-либо событие javascript, которое запускается при обратной передаче?

Если нет, как я могу запустить код на стороне клиента сразу после или после обратной передачи страницы?

4b9b3361

Ответ 1

Я считаю, что вы ищете Sys.WebForms.PageRequestManager beginRequest Event

Выдержки:

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

Пример кода: (по ссылке)

<script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function BeginRequestHandler(sender, args)
    {
        var elem = args.get_postBackElement();
        ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...');
    }
    function EndRequestHandler(sender, args)
    {
        ActivateAlertDiv('hidden', 'AlertDiv', '');
    }
    function ActivateAlertDiv(visstring, elem, msg)
    {
        var adiv = $get(elem);
        adiv.style.visibility = visstring;
        adiv.innerHTML = msg;                     
    }
</script>

Надеюсь, это поможет. Класс PageRequestManager, кажется, мало известен и мало используется.

Ответ 2

Вы можете добавить javascript в свою страницу, как это...

Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", 
    "alert('hello world');", true);

ИЛИ

Page.ClientScript.RegisterStartupScript(this.GetType(), "alertScript",
   "function Hello() { alert('hello world'); }", true);

Ответ 3

Событие onsubmit в теге формы

При использовании jQuery это выглядит как

$("#yourformtagid").submit(function () {
 ...
}

Ответ 4

Я не знаю, если вам все еще нужно, но посмотрите на это:

Запустите функцию javascript после обратной передачи

Я решу свою проблему, используя это:

<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function (s, e) {
    alert('Postback!');
});

есть много вариантов, например

$('#id').live('change', function (){});

$(document).ready(function () {});
ClientScriptManager.RegisterStartupScript(this.GetType(), "AKey", "MyFunction();", true);

и продолжайте движение. зависит от того, что вам нужно.

С уважением =)

Ответ 5

Объект Page.ClientScript имеет RegisterOnSubmitStatement Это срабатывает после того, как любой вход отправит форму. Это может быть или не быть тем, что вы ищете, но я использовал его для уведомления пользователя о несохраненных изменениях в редактируемых формах.

Преимущество использования этого над RegisterStartupScript заключается в том, что с RegisterOnSubmitStatement, если пользователь перемещается взад и вперед с помощью браузера, любой script, который вы ввели с помощью RegisterStartupScript, возможно, снова запустится, тогда как RegisterOnSubmitStatement будет работать только в том случае, если пользователь представили форму.

Ответ 6

Используйте AJAX с обработчиком событий для onComplete.

Ответ 7

Событие javascript не запускается, когда страница загружается после обратной передачи, но вы можете добавить javascript в свой html-шаблон (файл .aspx) и запустить его только в том случае, если страница была опубликована, например:

<script type='text/javascript'>
    var isPostBack = '<%= this.IsPostBack%>' == 'True';
    if (isPostBack) {
        alert('It a PostBack!');
    }
</script>

Если вы хотите настроить javascript для запуска только в определенных условиях (а не только для обратной передачи), вы можете создать переменную уровня страницы (защищенную или общедоступную) в своем классе страницы и сделать что-то подобное:

var userClickedSubmit = '<%= this.UserClickedSubmit%>' == 'True';
if (userClickedSubmit) {
    // Do something in javascript
}

(Ничего против ClientScript.RegisterStartupScript, что хорошо - иногда вы хотите сохранить свой javascript в шаблоне страницы, иногда вы хотите сохранить его в своем классе страницы.)