ASP.Net - 在用户控制服务器端方法中调用javascript

时间:2011-04-14 10:29:27

标签: javascript user-controls

我有一个使用公共方法的用户控件:

    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添加脚本,如上所示,它运行良好。

我不想仅仅为了调用javascript而将UpdatePanel添加到我的控件中。

我错过了什么吗?

谢谢!

2 个答案:

答案 0 :(得分:8)

实际上,如下所示更改代码应该可以正常工作。

ScriptManager.RegisterStartupScript(this.Page, typeof(System.Web.UI.Page), "ShowEmailPreview", "alert('hi');", true);

答案 1 :(得分:0)

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "ScriptName", "alert('hi');", true);

这是一个较短的版本