2010-10-21 8 views
0

J'essaie d'appeler javascript à partir du code de la page derrière sur un clic de bouton en utilisant le code suivant.Fonction Javascript de ASP.Net Code derrière

System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
       sb.Append("<script language=\"javascript\">"); 
       sb.Append("alert(\"Some Message\")"); 
       sb.Append("</script>"); 
       ClientScript.RegisterStartupScript(this.GetType(), "Alert", sb.ToString()); 

Mais le javascript n'est pas appelé.

Tout ce que je veux réaliser à partir de ceci est un message contextuel sur le bouton. Je ne veux pas empêcher l'exécution de code de serveur.

+3

Êtes-vous vraiment conscient de la différence entre client et côté serveur? ... rien de plus à dire ... vraiment ... –

+0

J'ai essayé le même code dans Page_Load et cela a fonctionné. –

Répondre

1

Il semble que vous utilisiez AJAX Update Panel. Dans ce cas - vous devez utiliser ScriptManager pour exécuter votre script:

System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
       sb.Append("<script language=\"javascript\">"); 
       sb.Append("confirm(\"Some Message\")"); 
       sb.Append("</script>"); 
ScriptManager.RegisterStartupScript(
          page, 
          page.GetType(), 
          "Alert", 
          sb.ToString(), 
          true); 

Cependant, il n'empêchera pas votre code côté serveur d'exécution si la réponse de l'utilisateur « Non » dans la fenêtre de confirmation.

+0

Je ne veux pas empêcher l'exécution du code serveur. Tout ce que je veux, c'est juste un popup sur le bouton, cliquez sur –

+0

Dans ce cas, mon code devrait fonctionner :) –

+0

Je n'utilise pas le panneau de mise à jour AJAX. Y a-t-il un moyen d'appeler ça sans ça? –

0

Si vous vous enregistrez à partir d'un événement de bouton dans un panneau de mise à jour AJAX, essayez;

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ScriptName", sb.ToString(), true); 

Vive Tigrou

0

je rencontrais même problème une fois, tout ce que je voulais était d'afficher un bouton contextuel sur Send Email clic. J'ai accompli cela en faisant ce qui suit:

if(True) 
{ 
Response.Write(@"<script language='javascript'>alert('Your e-mail sent successfully!');</script>"); 
} 
else 
{ 
    Response.Write(@"<script language='javascript'>alert('Your e-mail sent Failed! Please Try Again');</script>"); 
} 
Questions connexes