[Atlas] Appeller une fonction JS après un UpdatePanel
J’ai passé ma journée d’hier a chercher comment appeler une fonction JS (coté client donc) après l’update d’un UpdatePanel avec un rendu partiel du ScriptManager (enablepartialrendering= »True »).
J’ai enfin trouvé et en fait c’est vraiment tout bête. Il suffit d’ajouter dans votre Page_Load la ligne :
1 2 | Page.ClientScript.RegisterStartupScript(GetType(Page), _ "<nom_cle>", "<fonction_JS>", True) |
Exemple :
1 2 | Page.ClientScript.RegisterStartupScript(GetType(Page), _ "pageLoad", "alert('Salut à tous');", True) |
Et surtout n’oubliez pas le dernier parametre à True dans le cas d’un enablepartialrendering= »True » à votre ScriptManager, car c’est lui que j’avais oublié et qui m’a fait chercher de longues heures 🙂
Sebastien
En effet cela fonctionne lorsque tu met ce code dans le Load de la page.
Moi j’inscris des script au Load de la page mais je veux appeler ces script lorsqu’un bouton est cliqué….
Et là rien ne se passe.
Merci de m’éclairer
Seb
MSN : johnson_fr@hotmail.com
sebeuh
Si tu veux simplement lancer une fonction JS lors d’un click sur un bouton, tu dois juste attribuer l’attribut onCLick sur ton bouton. Ex en VB.net (a mettre dans ton Load) :
monButon.Attributes.Add("onClick", "alert(‘Test’);")
Bien à toi
Sebeuh
Sebastien
Merci, ca c’est bien quelque chose que je sais faire…
Le problème est que j’ai besoin de la partie serveur.
En gros sur l’evenement du bouton, je met à jour ma base de données et ensuite j’execute ma fonction javascript.
J’ai pris l’exemple d’une alert simple mais je veux tout de même que ca reparte au serveur.
En faisant comme dans ton exemple et en me mettant en mode Debug, ca rentre bien dans la fonction mais l’enregistrement du script que je fais en fin de fonction ne marche pas.
Merci davance.
Ex:
Private Sub Button1_Click(sender as ……)
Me.UpdateBDDCommun()
Me.ClientScript.RegisterStartupScript(me.GetType,"KeyScript","script",True)
End Sub
La mise a jour de la base s’effectue mais pas l’execution de la fonction alors que ca marche avec MagicAjax en en Mode EnablePartialRendering = False.