регистрация скрипта в конце страницы с помощью RegisterClientScriptBlock, чтобы избежать ошибки sys undefined - PullRequest
1 голос
/ 12 октября 2011

Мне нужно вызывать следующее программно, чтобы что-то настроить, когда отображается модальное всплывающее окно.

Sys.Application.add_load(modalSetup);

Что-то в этом роде.

<script type='text/javascript'>
            Sys.Application.add_load(modalSetup);
            function modalSetup() {
                var modalPopup = $find("PopupBehaviorId");
                if (modalPopup != null) {
                    modalPopup.add_shown(SetFocusOnControl);
                }
            }

            function SetFocusOnControl() {
                alert('test');
            }
        </script>

Теперь проблема в том, что у меня есть script manager на главной странице.

Если я поставлю этот скриптвручную (не программно) ниже script manager in the master page, это будет работать правильно.

Но когда я добавляю это программно в пользовательском элементе управления для модального всплывающего окна (что мне нужно), используя либо ScriptManager.RegisterClientScriptBlock or Page.ClientScript.RegisterClientScriptBlock, этовыдает известную ошибку sys is undefined.

Я знаю, что это происходит, потому что эта программная инъекция помещает его в Head section до выполнения строки ScriptManager.

Как мне обойти это?этот.Можно ли сказать, вставить этот скрипт в конце страницы, а не в верхней части?

1 Ответ

3 голосов
/ 12 октября 2011

Вы можете использовать метод RegisterStartupScript ScriptManager.

...