web-dev-qa-db-fra.com

Le code ScriptManager.RegisterStartupScript ne fonctionne pas - pourquoi?

J'ai utilisé du code comme celui-ci dans le passé pour afficher avec succès un message d'alerte sur ma page Web asp.net. Maintenant ça ne marche pas. Je ne comprends pas pourquoi.

ScriptManager.RegisterStartupScript(this, typeof(Page), UniqueID, 
     "alert('This pops up')", true);

Des idées?

19
TheMoot

Du haut de ma tête:

  • Utilisez GetType() au lieu de typeof(Page) afin de lier le script à votre classe de page réelle au lieu de la classe de base,
  • Passez une constante clé au lieu de Page.UniqueID, ce qui n'est pas si significatif car il est censé être utilisé par des contrôles nommés,
  • Terminez votre déclaration Javascript par un point-virgule,
  • Enregistrez le script pendant la phase PreRender:

protected void Page_PreRender(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "YourUniqueScriptKey", 
        "alert('This pops up');", true);
}
41
Frédéric Hamidi

Essayez ce code ...

ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "script", "alert('Hi');", true);

UpdatePanel1 est le id pour Updatepanel sur votre page

19
Eldhose

Vous devez mettre l'id de updatepanel dans le premier argument si le contrôle à l'origine du script se trouve dans le updatepanel sinon utiliser le mot-clé 'this' au lieu du panneau de mise à jour voici le code

ScriptManager.RegisterStartupScript(UpdatePanel3, this.GetType(), UpdatePanel3.UniqueID, "showError();", true);
1

Je suis tombé sur un problème similaire. Cependant, ce problème est dû à la façon dont j'ai conçu les pages pour introduire les demandes. J'ai placé tous mes fichiers .js comme dernière chose à appliquer à la page, ils sont donc à la fin de mon document. Les fichiers .js incluent toutes mes fonctions. Le gestionnaire de script semble que pour pouvoir appeler cette fonction, il a besoin du fichier js déjà présent avec la fonction appelée au moment du chargement. J'espère que cela aide quelqu'un d'autre.

0
NightDeveloper