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

Développement Web avec .NET Discussion :

Empêcher la selection automatique dans un autoComplete


Sujet :

Développement Web avec .NET

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 116
    Points : 158
    Points
    158
    Par défaut Empêcher la selection automatique dans un autoComplete
    Bonjour,

    je developpe actuellement une application en silverlight, comprenant quelques autoComplete.

    Le problème est que, lors d'une recherche, si l'autoComplete trouve une correspondance parfaite à ce qui est écrit dans la recherche, il le sélectionnera automatiquement.

    Et ensuite, je ne peux pas en sélectionner un autre à sa place.

    Par exemple, si je met en recherche "port", et que la recherche affiche en réalité 2 résultats "port", et "porte". Alors "port" sera automatiquement sélectionné, sans que je puisse reselectionner "porte".

    Comment faire pour que le selectionChanged de mon autoComplete, ne se produise que lorsque je clique sur une ligne de résultat ramené par cet autoComplete?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Dynamès Voir le message
    Le problème est que, lors d'une recherche, si l'autoComplete trouve une correspondance parfaite à ce qui est écrit dans la recherche, il le sélectionnera automatiquement.
    Bah ! C'est le but. Dans "autocomplete" tu as le préfixe auto et le radical complete donc le but c'est de faire de l'auto-completion. Je commence à taper et si un mot correspond à ce que j'ai tapé alors celui-ci est automatiquement sélectionné et cela me permet d'économiser de l'énergie

    Citation Envoyé par Dynamès Voir le message
    Par exemple, si je met en recherche "port", et que la recherche affiche en réalité 2 résultats "port", et "porte". Alors "port" sera automatiquement sélectionné, sans que je puisse reselectionner "porte".
    Dans ce cas-ci tu continues en ajoutant un "e" et "porte" sera sélectionné.

  3. #3
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Tu peux intercepter la touche Entré pour annuler l'action, mais je ne vois pas l’intérêt de faire ce que tu as envie de faire.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 116
    Points : 158
    Points
    158
    Par défaut
    Dans ce cas-ci tu continues en ajoutant un "e" et "porte" sera sélectionné.
    Justement non. Si j'ajoute la suite, et qu'il y a une correspondance, je repasse pas dans le selectionChanged, et c'est ce que je veux.

    Parce que si c'est "porte" que je veux ça va, mais si c'est "porte-dérobée", alors je suis obligé de tout taper à la main? Pas très pratique tout de même.

  5. #5
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Je pense que tu n'as pas compris comment ça marche, ça reste des suggestions.

    Par défaut l'élément porte est sélectionné (si tu appuis sur entrée c'est celui la qui sera sélectionné).

    Mais comme il y a plusieurs éléments qui correspondent à ce que tu veux (une liste) et que c'est le deuxième élément que tu veux, et bien tu te sers de la souris pour le choisir ou de ton clavier (touches directionnelles).

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Dynamès Voir le message
    Parce que si c'est "porte" que je veux ça va, mais si c'est "porte-dérobée", alors je suis obligé de tout taper à la main? Pas très pratique tout de même.
    Ah ! Désolé j'avais pas bien compris le problème
    Dans ce cas ce n'est pas normal.
    Regarde si en ajoutant un delai d'attente avant de faire la recherche corrige le problème. En effet AutoCompleteBox propose une propriété MinimumPopulateDelay. Tu pourras mettre une valeur adéquate comme ça ça laisse le temps d'être sûr que l'utilisateur a vraiment terminé sa saisie.

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 116
    Points : 158
    Points
    158
    Par défaut
    Mais comme il y a plusieurs éléments qui correspondent à ce que tu veux (une liste) et que c'est le deuxième élément que tu veux, et bien tu te sers de la souris pour le choisir ou de ton clavier (touches directionnelles).
    Le choix d'une valeur dans l'autoComplete permet de remplir automatiquement une autre textBox à côté. Et quand je passe par un click, après une séléction automatique, cela ne remplit pas toujours le textBox.

    D'ou ma volonté de vouloir bloquer/intercepter la selection automatique, histoire de n'avoir un événement, que lorsque l'on click sur la valeur.


    En effet AutoCompleteBox propose une propriété MinimumPopulateDelay.
    Merci, ça va déjà aider à résoudre un peu les problèmes.

    Existe il à côté, un moyen d’empêcher de passer dans le selectionChanged, tant qu'un click n'est pas effectué?


    Du genre, si tu arrives dans le selectionChanged d'une autre manière que par un click, tu ressors de la méthode.

    Il manque alors un événement click sur autoComplete.


    Maintenant, s'il n'y a pas de moyen de faire mieux, tant pis, mais si ça existe

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Dynamès Voir le message
    Existe il à côté, un moyen d’empêcher de passer dans le selectionChanged, tant qu'un click n'est pas effectué?
    Oui. Tu as dû t'abonner à l'évènement. Pour désactiver le passage dans le gestionnaire il faut te désabonner. Regarde dans le code les reférences au gestionnaire dévènement SelectionChanged ou regarde à partir de l'onglet Propriétés du contrôle.

    Après désabonnement au gestionnaire, tu pourrais faire ce que tu veux.

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 116
    Points : 158
    Points
    158
    Par défaut
    Merci.

    C'est donc dans la définition de la classe AutoComplete que je dois regarder et modifier comme il le faut.

    Donc, dans ma classe, je n'ai trouvé qu'un
    .OnSelectionChanged(e)
    . Qui donc, nous fait entrer ans le selectionChanged.

    Mais je n'ai pas trouvé de moyen, de dire : tu vas dans
    .OnSelectionChanged(e)
    que si c'est un click.

    Ca ne fait pas si longtemps que je fais du c#, donc peut être est ce un manque de connaissance, mais puis je faire ça en code?

Discussions similaires

  1. [AC-2003] faire une selection automatique dans une listebox
    Par facteur dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/01/2014, 18h55
  2. [CS5.5] Empêcher la modification automatique dans le fichier .css
    Par Oluha dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 21/03/2012, 09h44
  3. Selection automatique dans une liste
    Par ptilemare dans le forum Langage
    Réponses: 7
    Dernier message: 26/08/2010, 21h56
  4. Empêcher la saisie automatique dans un champ
    Par zooffy dans le forum ASP.NET
    Réponses: 6
    Dernier message: 14/01/2008, 12h51
  5. Réponses: 1
    Dernier message: 25/10/2006, 18h06

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