Appeler une fonction javascript depuis le serveur

Signaler
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008
-
Messages postés
4
Date d'inscription
vendredi 30 novembre 2007
Statut
Membre
Dernière intervention
13 août 2010
-
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

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

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

<hr />Cyril - MSP - MCTS ASP.net & SQL
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

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
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

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
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

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
Messages postés
4
Date d'inscription
vendredi 30 novembre 2007
Statut
Membre
Dernière intervention
13 août 2010

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?