Когда вы визуализируете скрипт в ответе, он делает именно это: визуализирует скрипт. Именно во время рендеринга страницы сценарий сначала отображается, и это уже произошло к моменту выполнения этого кода.
Microsoft предложила для этого решение, которое заключается в регистрации блока скрипта с помощью ScriptManager.RegisterClientScriptBlock
, и ScriptManager проследит, чтобы скрипт выполнялся после загрузки страницы.
В зависимости от вашей ситуации, это может или не может быть полезным. Или, в промежуточном: это может быть полезно только с небольшим количеством обходных путей. Из вашего комментария я могу вспомнить один обходной путь, который я мог бы рассмотреть, используя:
Добавьте метод GetClientScript
в свой UserControl, где возвращается JavaScript. Если UserControl загружается при обычной загрузке страницы, этот метод вызывается в точке, где вы в данный момент визуализируете свой скрипт. Если элемент управления загружен в постбэк UpdatePanel, вы получаете скрипт-элемент из элемента управления, используя этот метод, и регистрируете его в ScriptManager под рукой. В этом случае вам также следует передать параметр обратно в UserControl , а не , чтобы еще раз зарегистрировать скрипт, как обычно.