Код ScriptManager.RegisterStartupScript не работает - почему? - PullRequest
19 голосов
/ 14 февраля 2011

В прошлом я использовал подобный код, чтобы успешно вывести на мою страницу asp.net предупреждение. Сейчас это не работает. Я не могу понять, почему.

ScriptManager.RegisterStartupScript(this, typeof(Page), UniqueID, 
     "alert('This pops up')", true);

Есть идеи?

Ответы [ 4 ]

41 голосов
/ 14 февраля 2011

Вне моей головы:

  • Используйте GetType() вместо typeof(Page), чтобы связать скрипт с вашим реальным классом страницы вместо базового класса,
  • Передайте ключевую константу вместо Page.UniqueID, что не так уж важно, так как она должна использоваться именованными элементами управления,
  • Завершите свой оператор Javascript точкой с запятой,
  • Зарегистрируйте скриптPreRender фаза:

protected void Page_PreRender(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "YourUniqueScriptKey", 
        "alert('This pops up');", true);
}
19 голосов
/ 14 сентября 2011

Попробуйте этот код ...

ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "script", "alert('Hi');", true);

Где UpdatePanel1 является id для Updatepanel на вашей странице

1 голос
/ 19 мая 2015

Вы должны поместить идентификатор панели обновления в первый аргумент, если элемент управления, вызывающий сценарий, находится внутри панели обновления, иначе используйте ключевое слово 'this' вместо панели обновления, здесь код

ScriptManager.RegisterStartupScript(UpdatePanel3, this.GetType(), UpdatePanel3.UniqueID, "showError();", true);
0 голосов
/ 02 марта 2015

Я сталкивался с подобной проблемой.Однако эта проблема была вызвана тем, как я спроектировал страницы для доставки запросов. Я поместил все свои файлы .js как последнюю вещь, которая будет применена к странице, поэтому они находятся в конце моего документа.Файлы .js имеют все мои функции, включая.Диспетчер сценариев, кажется, что для вызова этой функции ему нужен уже присутствующий js-файл с функцией, вызываемой во время загрузки.Надеюсь, это кому-нибудь еще поможет.

...