2011-04-14 4 views
1

J'ai un contrôle utilisateur avec une méthode publique:ASP.Net - Appel javascript méthode côté serveur de contrôle de l'utilisateur

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 
    } 

Lors de l'hébergement page pour ce appels de contrôle utilisateur ShowDetails(), je dois appeler javascript .

J'ai essayé avec ScriptManager.RegisterStartupScript et Page.ClientScript.RegisterStartupScript mais cela ne fonctionne pas ... Cependant si j'ajoute un UpdatePanel sur mon contrôle et ajoute un script pour UpdatePanel comme indiqué ci-dessus, cela fonctionne bien.

Je ne veux pas ajouter UpdatePanel sur mon contrôle juste pour appeler javascript.

Ai-je raté quelque chose?

Merci!

Répondre

8

En fait changer votre code comme suit devrait fonctionner.

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

Impressionnant, Merci :) – iniki

+1

Cette solution a changé ma semaine. – Kulingar

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

ceci est une version plus courte

Questions connexes