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 :

[AJAX] AutoCompleteExtender qui complete rien


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut [AJAX] AutoCompleteExtender qui complete rien
    Bonjour

    Je n'arrive pas à trouver de doc ou de tuto pour faire un truc simple.
    je pense que mon souci est tou con et qu'un petit détail de rien doit m'échaper, mais je vois pas lequel.
    Je vous soumet mon code et j'explique aprés.
    Ma page ASPX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    	<title>Page sans titre</title>
    </head>
    <body>
      <form id="form1" runat="server">
      <ajax:ScriptManager ID="smGlobal" runat="server"></ajax:ScriptManager>
      <div>
      test de updatePanel
    	<ajax:UpdatePanel ID="upGlobal" runat="server">
    		<ContentTemplate>
    		<asp:TextBox ID="txtCodePostal" runat="server" AutoPostBack="true"></asp:TextBox>
    		<asp:Label ID="lblTest" runat="server"></asp:Label>
    			<ajaxToolkit:AutoCompleteExtender ID="aceCodePostal" runat="server" ServiceMethod="GetCompletionList"
    				TargetControlID="txtCodePostal" UseContextKey="True" DelimiterCharacters="" Enabled="True" ServicePath="">
    			</ajaxToolkit:AutoCompleteExtender>
    			</ContentTemplate>
    		</ajax:UpdatePanel>
      </div>
      </form>
    </body>
    </html>
    Mon Code-Behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Partial Class test
        Inherits System.Web.UI.Page
     
    	Public Function GetCompletionList() As String
    		lblTest.Text = "test avec le ACE "
    		Return Nothing
    	End Function
    End Class
    Je voudrais que, lorsque je tape un caractère dans la textbox, le Label change. Mais il ne se passe rien, que sorte ou pas de la textBox ou que je tape plein de caractère ou une seul

    Je comprend pas ce que je loupe. Et vu que le peu de doc que j'ai trouvé ne parle que des propriété, mais pas d'une mise en oeuvre complète, ben je patauge.

    Merci pour votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    ca ne peut pas fonctionner en l'etat puisque tu n'indiques pas dans les propriétés du autocompleteextender le servicepath ("~/monWebService.asmx") et le servicemethod (="getCompletionList").

    De plus, le autocompleteextender ne fonctionne qu'avec des webservices.

    Il faut donc que tu crées un Webservice.asmx dans ton projet et que tu crées une WebMethod "getCompletionList" dans laquelle tu implémentes ta fonction de complétion. Celle-ci doit prendre deux parametres et retourner un tableau de string.

    vas faire un tout ici pour te documenter et n'hesites pas si tu as besoin de plus d'infos, je peux t'envoyer un exemple en MP.

    Bonne journée

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ok, là je capte mieux. Je commençais à devenir chèvre.

    Donc faut que je mette au point un ASMX, chose que j'ai jamais fait, ça va être drôle.
    Lorsque je fait un "ajouter élément " et que je prend le ASMX il me créé un truc avec une methode HelloWorld(). Je peux partir là dessus comme base ?

    Je n'ai pas bien comrpis les deux paramettres en entrée et puis, je crois qu'il manque le liend dans ton message.

    En tout cas, merci pour ton éclaircissement, maintenant Dieu est parmi moi.....

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Je n'ai pas bien comrpis les deux paramettres en entrée et puis, je crois qu'il manque le liend dans ton message.
    oops I did it again, I forgot the link...
    donc le lien: autocomplete extender

    Ensuite, je ne suis pas sûr que tu aies bien saisi le fonctionnement du autocomplete extender (faut dire que tu ne commences pas par le plus simple avec l'ajaxtoolkit ).
    Celui ci te permet de compléter la saisie utilisateur sans rechargement de la page grace a l'appel asynchrone d'une webmethode qui retourne un nombre de données de mots en fonction des caracteres entrés.

    Pour exemple:
    dans un WebService.asmx, j'ai ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <WebMethod()> _
        Public Function GetNom(ByVal prefixText As String, ByVal count As Integer) As String()
            Dim myConnexion As Data.SqlClient.SqlConnection = New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("MyConnectionString").ConnectionString)
            Dim MyCommand As New SqlCommand
            Dim TableauNoms As New ArrayList
            Dim Noms As String()
            MyCommand.Connection = myConnexion
            MyCommand.CommandText = "SELECT DISTINCT NOM FROM USERS WHERE NOM LIKE'" & prefixText & "%'"
            Dim MyAda As New SqlDataAdapter(MyCommand)
            Dim DT As New DataTable("USERS")
            Try
                myConnexion.Open()
                MyAda.Fill(DT)
                For Each dr As DataRow In DT.Rows
                    TableauNoms.Add(dr.Item(0).ToString)
                Next
            Catch ex As Exception
                Throw ex
            Finally
                myConnexion.Close()
     
            End Try
            Noms = TableauNoms.ToArray(GetType(String))
     
            Return Noms
        End Function
    ATTENTION: le parametres prefixText et count sont obligatoires et leurs noms doivent resté inchangés.
    Côté balisage, ca donne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <ajaxToolkit:AutoCompleteExtender 
            runat="server" id="ace"
            TargetControlID="TextBox1"
            EnableCaching="true"
            Enabled="true"
            MinimumPrefixLength="1" ' nombre de caracteres avant la recherche
            ServicePath="WebService.asmx" ' le path vers le webservice.asmx
            ServiceMethod="GetNom" ' le nom de la webmethod
            CompletionSetCount="10" '> le nombre de propositions retournées par la methode (correspond au parametre "count") />

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Pas bien de citer Britney comme ça, quoi que, si tu vas la, tu en auras une version bien mieu.
    http://www.youtube.com/watch?v=GxHwXCqa0RQ

    Citation Envoyé par calagan99 Voir le message
    oops I did it again, I forgot the link...
    donc le lien: autocomplete extender

    ATTENTION: le parametres prefixText et count sont obligatoires et leurs noms doivent resté inchangés.
    Côté balisage, ca donne ca:
    Sinon, ben ça c'est cool.
    J'avais trouvé des trucs sur le net, dans des blog ou des choses comme ça, mais vu que c'était en C#, je me disais que je devais pas bien comrepdnre parce que ça marchait pas du tout.
    Moi je dis que, ils pourraient quand même faire une doc où ils expliquent tout ça. Parce que faut y penser à mettre un nom précis de variables.

    En tout cas merci, j'ai réussi à faire ce que je voulais grâce à ton aide.

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    hey hey, maintenant le challenge c'est de retourner une paire clé/valeur pour pouvoir exploiter l'id lié au nom choisit par l'utilisateur.

    Si tu en as besoin j'ai ca sous la main

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ben oui, tu as tout compris. Je veux bien ton code, mais j'ai trouvé un truc sur un blog qui marche avec un champ caché.
    J'ai pas encore fini de voir si ça marche bien, mais une autre technique m'interresse.

    En tout cas, merci.

    PS : alors, quand britney a sa voix qui mue, ça donne quoi ?

  8. #8
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    si ca marche avec un champ caché, alors on doit avoir la meme source.
    Elle soit cependant être adaptée car elle est en c# et la concaténation dans la requête n'est pas bonne.

    Je n'ai pas le temps de coller le code maintenant, j'essaye de la faire ce midi

Discussions similaires

  1. [AJAX] Ajax.Request qui ne fait rien
    Par bronon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/03/2008, 17h58
  2. Réponses: 2
    Dernier message: 23/04/2006, 21h02
  3. [MFC] Accès pointeur qui donne rien :s
    Par EagleEye dans le forum MFC
    Réponses: 3
    Dernier message: 02/03/2006, 18h32
  4. [Servlet] encodeURL/encodeRedirectURL qui encodent rien
    Par c.pauline dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/02/2006, 10h53

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