IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Comment un évènement JavaScript peut-il appler une fonction C# coté serveur


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut Comment un évènement JavaScript peut-il appler une fonction C# coté serveur
    Bonjour

    A priori il est possible qu'un évènement levé en JavaScript (donc coté navigateur) puisse appeler une fonction écrite en C# qui se trouverait coté serveur web.

    Cependant je ne vois pas comment appréhender mon problème.

    Quelqu'un pourrait-il me mettre le pied à l'étrier avec un petit exemple

    Merci d'avance

    Titan

  2. #2
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    L'inverse est possible (C# appelle Javascript), mais dans ce sens là je ne sais pas...

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Va falloir faire de l'AJAX

  4. #4
    Membre éclairé Avatar de medtun.net
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Par défaut
    bonsoir,
    je propose que tu écris ta fonction dans l'évènement load d'une nouvelle page web que tu nommes par exemple : "PageFonction.aspx"
    puis à partir du code javascript tu ouvres la page à l'aide de window.open("PageFonction.aspx"). Mais n'oublies pas d'ajouter dans la fonction C# un redirect vers ta page en cours.
    Comme ça ta fonction C# s'exécute et tu reviens à ta page d'origine.

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par medtun.net Voir le message
    bonsoir,
    je propose que tu écris ta fonction dans l'évènement load d'une nouvelle page web que tu nommes par exemple : "PageFonction.aspx"
    puis à partir du code javascript tu ouvres la page à l'aide de window.open("PageFonction.aspx"). Mais n'oublies pas d'ajouter dans la fonction C# un redirect vers ta page en cours.
    Comme ça ta fonction C# s'exécute et tu reviens à ta page d'origine.
    C'est méga crade
    Puis je pense pas que ça réponde à son besoin

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    regarde du coté de microsoft AJAX 1.0 dans le control cascadingdropdown tu as l'utilisation d'un webservice pour remplir des combos. mais en fait au lieu d'utiliser un web service tu peux créer une methode static qui fera remplacera le webservice.

  7. #7
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 174
    Par défaut
    Utilises les balises <%# %>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%# SetHeure(DataBinder.Eval(Container, "DataItem.act_planneddate").ToString()) %>
    Code Behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		public string SetHeure(string PlannedDate)
    		{
    .
    .
    .
    		}

  8. #8
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut
    Pour pouvoir appeler une fonction c# à partir de ton js tu va devoir inclure la dll ajax aux références de ta solution.
    Un fois cela fait tu va pouvoir déclarer certaines partie de ton code en ajax et ainsi les appeler à partir de ton js.
    De nombreux tuto sont dispo sur le net.
    Bonne chance.

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Honemo Voir le message
    Pour pouvoir appeler une fonction c# à partir de ton js tu va devoir inclure la dll ajax aux références de ta solution.
    Un fois cela fait tu va pouvoir déclarer certaines partie de ton code en ajax et ainsi les appeler à partir de ton js.
    De nombreux tuto sont dispo sur le net.
    Bonne chance.
    Non, tu peux faire sans

  10. #10
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut
    On peu toujours réinventer la roue à l'occasion c'est sur mais quand on a les outils pourquoi s'en priver?

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Honemo Voir le message
    On peu toujours réinventer la roue à l'occasion c'est sur mais quand on a les outils pourquoi s'en priver?
    Parce que faut installer tout un tas de trucs.
    S'il veut juste appeler une fonction côté code behind, c'est fait en une 20aine de lignes

  12. #12
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    C''est clair...

    Faire dériver la page de ICallbackEventHandler, rajouter les 2 prototypes qui vont bien (merci visual studio qui sais le faire tout seul ) et rajouter des ClientScript.GetCallBackEventReference(this, ....) c'est pas ce qu'y a de plus compliqué pour faire des fonctions de base

  13. #13
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    Effectivement je me penche actuellement vers la solution de l'implémentation de ICallbackEventHandler qui me semble adapter à mon problème

    Titan

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par défaut
    Citation Envoyé par titan_33 Voir le message
    Effectivement je me penche actuellement vers la solution de l'implémentation de ICallbackEventHandler qui me semble adapter à mon problème

    Titan
    Bonjour, j'ai le même soucis, je dois appeler des méthodes dans mon code behind avec du javascript, le seul soucis c'est que je suis en Framework 1.1 (je sais, je sais, c'est pas de ma faute), est ce qu'il est donc possible de faire cela quand même car je crois que l'interface ICallBackeventHandler n'existe pas en 1.1.

    Merci par avance.

    Rems

    Edit : je vais créer un nouveau post pour cela car le sujet est résolu ici.

  15. #15
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    Oui tu peux mais c'est un peu plus compliqué qu'en utilisant ICalbackEventHandler... Mais bon, quand on a pas le choix...

    Il faut utiliser l'objet XMLHttpRequest (ci après Ajax ) de Javascript. Il permet d'appeler une page quelconque. En revanche, c'est beaucoup plus compliqué pour garder l'état de la page. Pour ça, tu dois pouvoir ajouter tous les éléments de formulaire dans le POST lors de l'appel de la page avec l'objet Ajax, ça devrait simuler un postback du côté du serveur. Du coup tu aura accès à l'état de la page. Malheureusement je peux pas t'aider, j'ai jamais tenté de pratiquer un truc pareil, vu que j'ai jamais développé en .Net 1.1

    Et n'étant pas un expert, je peux même pas garantir mes dires, ce ne sont que des suppositions au vu de comment se comporte .Net.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Peut-on appliquer une fonction sur un champs ajouté?
    Par tinwul dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/05/2006, 17h02
  2. Peut-on executer une fonction qui est dans un iframe ??
    Par miloud dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/04/2006, 11h52
  3. Peut on inserer une fonction dans un graphique excel ?
    Par Celia1303 dans le forum Excel
    Réponses: 2
    Dernier message: 08/11/2005, 09h09
  4. [JAVASCRIPT] passage d'argument à une fonction
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/06/2005, 18h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo