2011-04-14 87 views
1

我有一个公共方法的用户控件的javascript:ASP.Net - 调用在用户控制服务器端方法

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。

我错过了什么吗?

谢谢!

回答

8

实际上改变你的代码如下应该工作。

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

真棒,谢谢:) – iniki 2011-04-14 10:52:05

+1

该解决方案改变。 – Kulingar 2013-02-20 03:03:48

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

这是一个较短的版本我一周

相关问题