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 :

Appeler du code behind depuis un événement javascript :


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Appeler du code behind depuis un événement javascript :
    Bonjour,

    Voici mon problème :
    Je dispose d'une liste déroulante de localités. J'aimerais rendre cette liste éditable afin que la liste se mette à jour à chaque fois que le client entre une lettre.
    J'ai tout d'abord chercher s'il existait la possibilité de rendre une dropdownlist ou une listBox editable mais apparemment ce n'est pas possible.
    J'ai ensuite regarder s'il existait un autre composant le permettant, apparemment, il n'y en a pas.
    Il n'y a pas non plus un événement "onkeypress" applicable sur les composant .net.
    J'ai donc créé au-dessus de ma liste une input standard html avec l'événement "onkeypress" qui invoque une fonction javascript qui elle-même pourrait appeler la méthode adéquate du code behind de la page aspx. Et c'est la que ça se complique. Je ne parviens pas à appeler du code behind depuis cette fonction javascript. J'ai pourtant trouvé quelques éléments sur http://www.developpez.net/forums/sho...d.php?t=379769. Mais ce n'est pas exactement le même problème. Voici un résumé de la situation :

    J'ai ajouté l'extension ajax pour .net et incorporé le contrôle suivant dans ma page :
    <asp:ScriptManager ID="ScriptManager1" EnablePageMethods=true EnablePartialRendering=true runat="server">
    </asp:ScriptManager>

    Voici mon javascript :
    <script language="javascript" type="text/javascript">
    function test(){
    PageMethods.updateListLoc();
    }
    </script>

    Et voici ma méthode behind :
    public void updateListLoc()
    {
    inputLieu_Changed();
    }

    Je sais, cette méthode devrait être static. Mais dans ce cas, je ne peut pas faire appel à ma méthode "inputLieu_Changed()" et bien entendu je ne peux pas récupérer l'objet associé au contrôle de la liste déroulante (Car il n'est pas static). Mais ce n'est pas le coeur du problème car cette méthode n'est tout simplement pas appelée.

    En fait une erreur javascript se déclenche en m'indiquant que "PageMethods" n'est pas reconnu. J'ai également vu que la méthode static du code behind ne doit pas être dans le code behind de la page master (Je vois vraiment pas pourquoi) mais dans ce cas, je ne dispose de plus aucune instance des objets de ma page.

    Voilà. J'attend donc toutes propositions afin de parvenir à mes fins. Que ce soit des modifications de cette solution ou des autres solutions.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    ces composants t'intéresserais pas ?
    http://www.asp.net/AJAX/AjaxControlT...istSearch.aspx

    http://www.asp.net/AJAX/AjaxControlT...oComplete.aspx

    Sinon aussi pkoi ne pas utiliser la méthode ajax XmlHttpRequest ou autre équivalent présent dans des librairies javascript pour alimenter ta dropDown.

    Parce que la tu vas te prendre la tete, je le crains.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Oui c'est bien cela que je cherche mais...
    Bonjour,

    Alors oui c'est exactement le contrôle qu'il me faut et je vous remercie pour votre réponse. Cependant j'ai un autre souci. Quand j'intègre ce contrôle dans ma page, le compilateur ne reconnait pas la balise <ajaxToolkit:AutoCompleteExtender>.
    Ce qui est dans un sens logique vu qu'il n'y a aucune définition de ce tag en haut de ma page.
    Pour utiliser ce genre de contrôle, .net 2.0 avec ajax toolkit est suffisant ?
    Ou faut-il que je me procure .net 3.5 avec le ajax toolkit associé ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    2.0 suffit pour ce toolkit. par contre il faut que le projet soit configurer pour l'accepter.

    Soit en faisant un nouveau projet web "Asp .NET AJAX-Enabled Web site" pour la méthode la plus simple.

    Si tu as déjà bien avancé sur ton site il va falloir mettre ajax a la "main" dans ton projet. C'est légérement fastidieux mais l'ayant deja fais c'est pas la mort non plus.
    regarde ici ci-besoin est : http://asp.net/ajax/documentation/li...SPNETAJAX.aspx

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Ok mais le problème n'est toujours pas résolu :
    Merci pour ta réponse.
    J'ai été sur le lien et j'ai mis à jour mon web.config. J'ai aussi essayé de créer un nouveau site en spécifiant l'utilisation d'AJAX. Mais rien à faire, il ne reconnait pas le contrôle <ajaxToolkit:...>. Si cette librairie existe alors il manque un tag au sommet de la page. Ce tag devrait normalement apparaitre automatiquement lors de la création de la page.
    Depuis que j'ai mis le toolkit il a ajouter cette ligne au sommet de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        Namespace="System.Web.UI" TagPrefix="asp" %>
    Donc je devrais pouvoir atteindre mes contrôle ajax via le contrôle <asp:AutoCompleteExtender...>. Mais dans ce cas, c'est le "AutoCompleteExtender" qu'il ne parvient pas à trouver. Normalement pour utiliser le contrôle <ajaxToolkit:...> il devrait y avoir une balise <%@ ... TagPrefix="ajaxToolkit">.
    Donc aurais-tu un autre tour dans ton sac ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    Question bête mais utile As tu bien la référence la Dll ajaxToolkit dans ton proj?

    Il est intégré que dans la Version 3.5 si je en me trompe pas.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Toujours le problème mais on avance...
    Question pas bête du tout, il n'y avait en effet pas de référence dll vers le toolkit. Je les aies donc ajoutées mais le problème persiste. Il reste peut-être à mettre une ligne dans la page aspx pour utiliser cette référence ?

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    regarde ici:
    http://asp.net/learn/ajax-videos/video-76.aspx

    une ptite video de l'install de ajax (avec ajout des controls a la toolbox).

    Mais l'important c'est d'ajouter tes controls a la toolbox. Si je me souviens bien en faisant un drag and drop d'un control sur ta page il t'inclus ta dll et te fais le register. (a confirmer).

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Ok c'est parfait.
    C'est bon j'ai ce qu'il me faut. Je n'ai pas encore testé un contrôle mais j'ai tout ce qu'il me faut pour faire ce que je désirais.

    Un grand merci pour ton aide Gyzmau.

    Meilleures salutations.

Discussions similaires

  1. [Débutant] Appeler une fonction C# code Behind depuis le aspx en Javacript
    Par SultanGeek dans le forum ASP.NET
    Réponses: 8
    Dernier message: 26/06/2015, 15h40
  2. Appeler du code behind depuis un script Jquery
    Par keryss dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/06/2011, 08h50
  3. Fonctions code behind depuis javascript
    Par jojo1309 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/03/2011, 10h47
  4. Appeler du code behind depuis un événement javascript :
    Par FredChautems dans le forum Framework .NET
    Réponses: 0
    Dernier message: 20/03/2008, 12h59
  5. [JS] Appeler du code C# depuis du code JS
    Par DontNet dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/05/2005, 19h00

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