Выполнение одной строки javascript на асинхронном событии ajax в ASP.NET

Я использую Elastic CSS Framework на сайте ASP.NET. Он отлично справляется с определением размеров различных контейнеров, пока UpdatePanel не выполнит частичную обратную передачу. Решение, как я понимаю, состоит в том, чтобы выполнить следующую строку JavaScript

Elastic.refresh();

Я очень хорошо с C# и ASP.NET, но не так много с Javascript. Насколько я понимаю, RegisterStartupScript только регистрирует скрипт, мне все еще нужен элемент управления, чтобы затем выполнить его.

Итак, как я могу получить эту одну строку JavaScript для выполнения, когда пользовательский элемент управления перехватывает пользовательское исключение и вызывает частичную обратную передачу?

2 ответа

Решение

редактировать

В javascript на вашей странице вы также можете попробовать что-то вроде этого

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(PageLoadedHandler);
function PageLoadHandler()
{
    Elastic.refresh();
}

Этот обработчик будет работать после любого обратного вызова, но sender._postBackSettings.panelID позволит вам отфильтровать его на панель, которую вы хотите.

В качестве альтернативы вы можете попробовать, если запрос на завершение соответствует вашим потребностям.

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function PageLoadHandler()
{
    Elastic.refresh();
}

оригинал

У вас есть элемент управления ScriptManager на странице с панелью обновления? Если это так, вы можете использовать ScriptManager.AsyncPostBackError и заставить его выполнить ваш метод.

http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.asyncpostbackerror.aspx

Это предположение, но я бы попробовал использовать буквенный элемент управления в панели ajax, который содержал следующее:

<script language="javascript">
Elastic.refresh();
</script>

Если я прав, панель Ajax перезагрузится, и она автоматически выполнит эту строку кода, когда это произойдет.

Другие вопросы по тегам