Выполнение одной строки 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 перезагрузится, и она автоматически выполнит эту строку кода, когда это произойдет.