Appeler une fonction javascript depuis le serveur

cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008 - 22 mai 2007 à 16:43
nhbhug Messages postés 4 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 13 août 2010 - 20 mai 2008 à 12:39
Bonjour,

J'ai une application web dans laquelle j'utilise un UpdatePanel pour faire un postback. J'aimerais, à la suite de ce postback, appeler une fonction javascript avec des paramètres depuis le serveur. Est-ce possible ?
En cherchant sur le web, j'ai trouvé la méthode RegisterClientScriptBlock. J'ai l'impression que ça peut répondre à mon problème mais je ne vois pas comment m'en servir...
Si vous avez des exemples ou d'autres idées pour réaliser celà, ils sont les bienvenues.

Merci d'avance.

Mathmax

7 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
22 mai 2007 à 17:56
Bonjour,

ScriptManager.RegisterStartupScript(typeof(lapage), "lakey", String.Format("lafunction('{0}');", laValue), true);

<hr />Cyril - MSP - MCTS ASP.net & SQL
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
22 mai 2007 à 18:30
Merci, ça marche mais j'ai un problème. Je t'explique ce que je veux faire :
Cette page
utilise un update panel. Quand je clique sur un élément de la liste de
gauche, une info s'affiche à droite (rechargement partiel de la page).
Ce que j'aimerais, c'est ajouter un paramètre à l'url qui est un
identifiant pour chaque info de sorte que quand on clique sur une info,
l'url change et affiche l'identifiant de l'info.

Comme je connais l'identifiant côté serveur, je voulais profiter du
postback pour le renvoyer cet id chez le client et modifier ensuite
l'url.


J'ai donc écris la fonction suivante :

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

 
string script = "location.href += '?id=" + MonId + "';";
 
ScriptManager.RegisterStartupScript(Page,
GetType(),
"test",
script,
true);
 

<!-- END TEMPLATE: bbcode_code -->

Le problème est que le fait de modifier l'url semble générer un
postback, qui lui même entraîne une modification de l'url... bref on
rentre dans un cercle vicieux interminable.

En fait je voulais faire celà afin d'avoir une url par info sans recharger complètement la page quand on
clique pour afficher l'une d'entre elles. J'aimerais en effet pouvoir référencer chaque info avec des balises meta qui lui son propre
(description, keywords, title propre à l'info) mais je crois qu'il faut
une url unique pour chaque info afin que le moteur de recherche référencie
correctement, non ?

Bref, as tu une solution à ce problème ?

Merci pour ton aide.
Mathmax
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
22 mai 2007 à 19:03
euh ....

les moteurs de recherche n'interprete pas javascript, les postback, updatepanel et consort valent 0 pour le référencement ...

Il y a un projet en cours chez Microsoft d'un controle History (j'espere avoir le temps de bientot en parler sur mon blog) qui permet de modifier l'url mais ca permet juste à l'utilisateur de bookmarquer cette page, en aucun cas google pourra s'en servir, en fait le controle history gère un clientstate dans l'url avec l'ancre http://url#action=toto 

si tu veux faire en sorte que les updatepanels soient référencable par google c'est possible mais ca nécessite un enorme boulot et une grosse architecture (et une bonne connaissance d'ASP.net et JavaScript n'est pas négligeable :p)

<hr />Cyril - MSP - MCTS ASP.net & SQL
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
24 mai 2007 à 11:57
En ayant ajouté un identifiant à chaque info, je possède des adresses bien distinctes pour chacune d'elles et je n'ai plus qu'à renvoyer dynamiquement les metas correspondantes, non ?

Mathmax
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
24 mai 2007 à 14:23
les balises meta ne servent à rien
tu modifie l'url via javascript donc les moteurs ne verront pas cet url, est-ce que si tu tappes directement cet url, tu as accès à ce que tu veux ?

<hr />Cyril - MSP - MCTS ASP.net & SQL
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
24 mai 2007 à 16:45
Non je ne parle plus de modifier l'url via javascript.
Oui, j'ai fait en sorte que quand on tape l'url, suivit du paramètre idinquant l'id, on tombe directement sur l'article concerné.

Mathmax
0
nhbhug Messages postés 4 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 13 août 2010
20 mai 2008 à 12:39
Salut, je développe une application en asp net, et voudrais appeler une fonction écrite en javascript à partir de code behind. Quelle instruction puis - je utiliser?
0
Rejoignez-nous