Есть ли какое-либо событие javascript, которое запускается при обратной передаче?
Если нет, как я могу запустить код на стороне клиента сразу после или после обратной передачи страницы?
Есть ли какое-либо событие javascript, которое запускается при обратной передаче?
Если нет, как я могу запустить код на стороне клиента сразу после или после обратной передачи страницы?
Я считаю, что вы ищете 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, кажется, мало известен и мало используется.
Вы можете добавить javascript в свою страницу, как это...
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert",
"alert('hello world');", true);
ИЛИ
Page.ClientScript.RegisterStartupScript(this.GetType(), "alertScript",
"function Hello() { alert('hello world'); }", true);
Событие onsubmit в теге формы
При использовании jQuery это выглядит как
$("#yourformtagid").submit(function () {
...
}
Я не знаю, если вам все еще нужно, но посмотрите на это:
Запустите функцию 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);
и продолжайте движение. зависит от того, что вам нужно.
С уважением =)
Объект Page.ClientScript имеет RegisterOnSubmitStatement Это срабатывает после того, как любой вход отправит форму. Это может быть или не быть тем, что вы ищете, но я использовал его для уведомления пользователя о несохраненных изменениях в редактируемых формах.
Преимущество использования этого над RegisterStartupScript заключается в том, что с RegisterOnSubmitStatement, если пользователь перемещается взад и вперед с помощью браузера, любой script, который вы ввели с помощью RegisterStartupScript, возможно, снова запустится, тогда как RegisterOnSubmitStatement будет работать только в том случае, если пользователь представили форму.
Используйте AJAX с обработчиком событий для onComplete
.
Событие 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 в шаблоне страницы, иногда вы хотите сохранить его в своем классе страницы.)