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

ASP.Net - Calling javascript in User Control server side method

本文关键字:调用 javascript 方法 服务器端 用户 控制 ASP      更新时间:2023-09-26

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

    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。

我错过了什么吗?

谢谢!

按以下方式修改代码应该可以工作。

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