выполнение одной строки JavaScript на асинхронном событии ajax в ASP.NET - PullRequest
0 голосов
/ 12 июня 2011

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

Elastic.refresh();

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

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

Ответы [ 2 ]

2 голосов
/ 12 июня 2011

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

В 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 на странице, которая имеет UpdatePanel?Если это так, вы можете использовать ScriptManager.AsyncPostBackError и заставить его выполнить ваш метод.

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

1 голос
/ 12 июня 2011

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

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

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

...