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?
Du haut de ma tête:
GetType()
au lieu de typeof(Page)
afin de lier le script à votre classe de page réelle au lieu de la classe de base,Page.UniqueID
, ce qui n'est pas si significatif car il est censé être utilisé par des contrôles nommés,PreRender
:protected void Page_PreRender(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this, GetType(), "YourUniqueScriptKey",
"alert('This pops up');", true);
}
Essayez ce code ...
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "script", "alert('Hi');", true);
Où UpdatePanel1
est le id
pour Updatepanel
sur votre page
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);
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.