ASP.Net - Вызов JavaScript в методе управления сервером на стороне пользователя. - PullRequest
1 голос
/ 14 апреля 2011

У меня есть пользовательский элемент управления с открытым методом:

    public void ShowDetails(Guid requestGuid)
    {            
        Label1.Text = reportGuid.ToString(); //only for testing            

        ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "ShowEmailPreview", "alert('hi');", true);
        //ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowEmailPreview", "alert('hi');", true); //doesn't work
        //Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowEmailPreview", "alert('hi');", true); //doesn't work
    }

Когда хост-страница для этого пользовательского элемента управления вызывает ShowDetails (), мне нужно вызвать некоторый JavaScript.

Я пытался использовать ScriptManager.RegisterStartupScript и Page.ClientScript.RegisterStartupScript, но он не работает ... Однако если я добавлю UpdatePanel на свой элемент управления и добавлю сценарий для UpdatePanel, как показано выше, он будет работать хорошо.

Я не хочу добавлять UpdatePanel в свой элемент управления только ради вызова javascript.

Я что-то упустил?

Спасибо!

Ответы [ 2 ]

8 голосов
/ 14 апреля 2011

На самом деле изменение вашего кода следующим образом должно работать.

ScriptManager.RegisterStartupScript(this.Page, typeof(System.Web.UI.Page), "ShowEmailPreview", "alert('hi');", true);
0 голосов
/ 23 марта 2012
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "ScriptName", "alert('hi');", true);

это более короткая версия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...