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 :

AjaxControlToolkit AutoCompleteExtender et Fonctions Javascript


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut AjaxControlToolkit AutoCompleteExtender et Fonctions Javascript
    Bonjour,

    J'utilise le Controle AutoCompleteExtender de l'AjaxToolkit pour .Net.

    Dans le GetCompletionList qui renvoie une liste de String à afficher, je renvoie une liste de String mais cette liste contient parfois des méthodes javascript et c'est là qu'il y a un problème...

    Par exemple quand ma liste comporte le mot 'escape', à l'affichage
    j'obtiens "function escape() {[native code]}" au lieu de "escape"

    Ou encore avec le mot "Confirm", là il affiche "0"

    Quelqu'un aurait -il une idée de comment je pourrais résoudre ce problème ?

    Merci d'avance

    MAtt

  2. #2
    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
    As tu du code à nous filer ?

    J'utilise aussi ce contrôle, mais je passe par un webService pour le remplir et je vois pas bien ton histoire de Jscript.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Voilà mon controle=>

    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
    <AjaxToolkit:AutoCompleteExtender
        runat="server" 
        ID="aceTxtField" 
        TargetControlID="txtField"
        ServiceMethod="GetCompletionList"
        ServicePath="~/monwebservice.asmx"
        MinimumPrefixLength="3" 
        CompletionInterval="1000"
        EnableCaching="true"
        CompletionSetCount="20" 
        CompletionListCssClass="autocompletionlist" 
        CompletionListItemCssClass="autocompletionlistitem" 
        CompletionListHighlightedItemCssClass="autocompletionlistitemhover"
        DelimiterCharacters=";, :"
        ShowOnlyCurrentWordInCompletionListItem="true"
        UseContextKey="true">
    </AjaxToolkit:AutoCompleteExtender>
    Mon Webservice =>

    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
    Public Function GetCompletionList(ByVal prefixText As String, ByVal count As Integer, ByVal contextKey As String) As String()
     
                Dim fieldValueList As New List(Of String)
                Try
                    Dim fieldnames As String() = contextKey.Split(CChar(";"))
                    For Each fieldname As String In fieldnames
                        Dim objListTermInfo As List(Of Business.TermInfo) = PortalQueryingDriver.GetCurrent().GetTopTerms(fieldname, 0)
                        Dim ListTerm As List(Of Business.TermInfo) = (From term As Business.TermInfo In objListTermInfo Where term.Text.StartsWith(prefixText)).ToList()
                        For Each foundTerm As Business.TermInfo In ListTerm
                            If Not fieldValueList.Contains(foundTerm.Text) Then
                                fieldValueList.Add(foundTerm.Text)
                            End If
                        Next
                    Next
     
                Catch ex As Exception
     
                End Try
     
                Return fieldValueList.ToArray
     
            End Function
    C'est interfacé avec Lucene donc à premiere vue, ça peut paraitre compliqué
    mais ça renvoie tout simplement un string()

    Mais en fait quand je passe en débug le return renvoie bien une liste contentant les mots escape et confirm mais lors de l'affichage, il les modifie.
    J'ai l'impression que le javascript qui est derriere essaye de l'éxécuter d'où le confirm affichant 0 et escape affichant function escape() {[native code]}

    Merci

    MAtt

  4. #4
    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
    Ton code me parait bon, même si je ne connais pas du tout Lucene (faudra que tu m'explique... ou un lien simple, c'est parfois suffisant)

    Ensuite, je ne comprends ps trés bien l'histoire des mots "escape" et "confim" ?
    Qu'est qu'il viennent faire là dedans ?

    Ta liste, à quoi elle doit ressembler ?
    Ce que j'entrevois (mas je vais attendre tes lumières pour être sûr) c'est tu voudrais mettre des mot de Jscript dans une liste pour déclancher des choses et ça, c'est pas bien, voire même c'est MAL !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Pardon je me suis peut etre mal exprimé.

    Non en fait en gros avec Lucene j'indexe des fichiers pdfs.
    Dans ces fichiers pdfs, il peut y avoir les mots "tortue", "developpez", etc
    Dans ces fichiers pdf, parfois il y a le mot "Escape" (rien à voir avec Javascript)

    Dans mon GetCompletionList, je récupère les mots des pdfs et les renvoie sous la forme d'un string()
    Imaginons qu'ils me renvoie montableau() où montableau(0)="escape" et montableau(1)="confirm", montableau(2)="AutreMot"

    A l'affichage de la liste je devrais obtenir
    - escape
    - confirm
    - AutreMot

    Or le résultat que j'obtiens est
    -function escape() {[native code]}
    -0
    -AutreMot

    Tu as compris mon Problème ?

    (désolé pour le tps de réponse => j'étais en réunion)

    Merci

    MAtt

  6. #6
    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
    Ok, je commence à mieux comprendre, même si je vois touours pas ce qu'est Lucene, mais je vais demaner à mon ami Google juste aprés.

    Donc, ce que je pense ce confirme un peu. Je crois que le Contrôle interprète ces mots là comme étant du JScript et donc fais ce qu'il peut avec ce qu'il a.

    Peut être pourrais tu essayer de mettre entre quote ou entre guillement les mots en retour, dans ton WebService, hsitoire de tester.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Yeah, Nice !! It Works ;-)

    J'ai rajouté les simples quotes et ça s'affiche correctement
    N'étant pas un fan du Javascript, j'avais pas pensé à ça...


    Merci zooffy

    Matt
    (je met en résolu dès que je trouve le bouton)

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

Discussions similaires

  1. Appel de fonction javascript
    Par lepierre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/11/2004, 14h28
  2. Réponses: 5
    Dernier message: 13/08/2004, 15h40
  3. Réponses: 4
    Dernier message: 02/06/2004, 16h35
  4. Réponses: 11
    Dernier message: 10/05/2004, 10h49
  5. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24

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