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 :

AutoCompleteExtender qui extende pas grand chose


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 55
    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 AutoCompleteExtender qui extende pas grand chose
    Bonjour

    J'ai un souci avec un AutoCompleteExtender qui se charge pas.
    J'arrive pas à déterminer où se situe le bug. Mes données sont présentes, la requête retourne quelque chose et lorsque je retrourne une simple chaine de caractère il me mets des "Undefined" dans la liste (ce qui me parait normal).

    Je vous soumets mon code.
    Côté HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <asp:TextBox ID="txtACE" runat="server"></asp:TextBox>
    <ajaxToolkit:AutoCompleteExtender ID="aceTest" runat="server" 
        TargetControlID="txtACE"
        ServicePath="~/GMPhotoProfil.asmx"
        ServiceMethod="ListeDeroulante"
        MinimumPrefixLength="2" 
        CompletionInterval="1000"
        EnableCaching="true"
        CompletionSetCount="20" 
        ContextKey="Ville"
        ></ajaxToolkit:AutoCompleteExtender>
    Dans le WebService la méthode ListeDeroulante :
    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
     
        <WebMethod()> _
        Public Function ListeDeroulante(ByVal contextKey As String) As Array
            Dim valret As New System.Collections.Generic.List(Of String)
            Select Case contextKey
                Case "Ville"
                    Dim dt As DataTable = New DManager("DataDev").RetournerTable("SELECT NMC_LIBELLE, NMC_ID FROM GLOBAL_GeoPolitique WHERE NMC_NIVEAU = 5")
                    If dt.Rows.Count = 0 Then
                        valret.Add("Aucune ville disponible.")
                    Else
                        For Each r As DataRow In dt.Rows
                            valret.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(r.Item(0), r.Item(1)))
                        Next
                    End If
                    Return valret.ToArray
                Case Else
                    Return valret.ToArray
            End Select
        End Function
    Sachant que, en plus, le WebService me sert pour un défilment d'image avec un SlideShow et que tout va bien de ce côté là. J'utilise une autre fonction dans le WebService.

    Pouvez vous m'aider ?

  2. #2
    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
    Je comprends pas trop là
    La fonction de ton WebService est censée prendre en paramètre la saisie dans la textbox

  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 : 55
    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
    De ce que j'ai compris dans a doc ça se fait automatiquement ça.
    C'est pour ça que tu dois spécifier le TargetControlId.

    Ou alors je loupe un truc. Ce qui m'énerve, c'est je l'ai déjà fait l'année dernière, mais j'arrive pas à remetre la main sur mon code et bien sur, je me rapelle plus comment j'avais fait.

  4. #4
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Salut Zooffy, essaies de creer un autre web service uniquement pour ça.

    Au passage, en debuggant, r.Item(0), r.Item(1) te retournent bien des valeurs ?

    en dernier lieu modifies ceci et indique moi si c'est ok :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each r As DataRow In dt.Rows
                            valret.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(CType(r.Item(0),string), CType(r.Item(1),string)))
                        Next

  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 : 55
    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
    Merci PredAlpha (et content de te revoir)

    Donc j'ai un peu avancé sur le sujet. J'ai en fait modifié mon système d'appel de mon WebService et j'ai eu de bine meilleurs résultats.
    En fait je suis passé sur une recherche en base par rapport au code postal. Dés qu'il y 5 caractères de saisi le Webservice se lance et retourne les villes concernées par ce code postal (ou un message indiquant qu'il n'y a pas de ville)

    Maintenant je voudrais passer à une autre forme d'appel : je tape 3 caractéres (c'est la ville d'EU qui va me poser des soucis.....) mais là j'y arrive pas.

    Je pense qu'il y a deux soucis qui se conjugue :
    - le volume de donnée à retourner car lorsque je met une TOP 10 dans ma requête il retourne un truc de suis
    - je n'arrive pas à le faire affiner au fur et à mesure de la saisie. En fait il me sort toujours le début de la liste, à savoir les villes commençant par A, même je tape LOR

    Du coup, me voilà un poil paumé.

    As tu une idée ?

  6. #6
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Salut Zooffy, content de te retrouver également

    Je te balance vite fait quelques propriétés :

    MinimumPrefixLength - nombre de caractères minimum avant l'attaque du webservice
    CompletionInterval - temps avant l'attaque du webservice en millisecondes
    EnableCaching - permet de mettre dans le cache les requetes du webservice
    ShowOnlyCurrentWordInCompletionListItem - Si = TRUE et que les 'delimiterCharacters' sont définis, alors la AutoComplete list va seulement afficher les mots à compléter

    C'est probablement la dernière propriété qu'il faut regarder de plus près.

    Mon autoCompleteExtender n'a pas ce soucis là par défaut car de mon côté, je suis parti d'une autre approche avec une requete SQL avec top et like @nomville + '%'. Cela permet entre autre de résoudre ton problème de volume de données ainsi que les noms de villes affichés par ton extender.
    (tu n'auras plus que des villes commençant par le mot tapé en saisi)

  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 : 55
    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
    Je crois qu'on commence à toucher le fond du problème du bout des doitgs.

    Cette propriété ShowOnlyCurrentWordInCompletionListItem je l'ai vu sur le site de AjaxControleToolKit. Mais lorsque je la place dans mon code, côté HTML ou côté CodeBehind, ben il me dit qu'ele fait pas partie de la bande.

    Alors questions :
    - est ce que j'aurais pas un petit souci de compatibilité de FrameWork et de AjaxControleToolKit ?
    - comment déterminer les versions installées actuellement (je suis un peu paumé entre les références dans le Web.Config et ce que je trouve dans l'Assembly)
    - est ce que mon code n'est tout simplement pas pourri à la base.

  8. #8
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Ma version de ajaxcontroltoolkit je l'ai téléchargé chez codeplex je crois.
    Je te donnerais le numero de version dans la soirée car suis au travail. (meme si de mon côté je n'utilise pas la propriété ShowOnlyCurrentWordInCompletionListItem)

    Essaies d'utiliser le Like dans ta requête. Ca peut t'aider à surmonter ton pb de ShowOnlyCurrentWordInCompletionListItem (as tu mis la propriété delimiterCharacters ?) et faire fonctionner l'engin comme dirait l'autre.

Discussions similaires

  1. c'est pas grand chose..
    Par supertunar dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2008, 14h27
  2. Comment se compliquer la vie pour pas grand chose
    Par alsimbad dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/08/2007, 06h17
  3. [RegExp] Avis aux Initiés, j'y connais pas grand chose
    Par Okena dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2007, 15h31
  4. [VBA-E] Je ne connais pas grand chose VBA + Excel
    Par nicolasdeloise dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/01/2007, 22h58
  5. Giptables..je trouve pas grand chose
    Par irnatene dans le forum Réseau
    Réponses: 3
    Dernier message: 18/09/2006, 13h44

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