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

Flex Discussion :

Cacher certains éléments d'un dataprovider


Sujet :

Flex

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut Cacher certains éléments d'un dataprovider
    Bonjour à tous,
    J'utilise un dataProvider global pour alimenter plusieurs composants List et les item sont modifiables.

    Cependant tous les éléments ne doivent pas s'afficher dans toutes les listes. J'ai donc utilisé labelFunction pour renvoyer null quand l'ID de l'item ne correspond pas à la List courante! Malheureusement au lieu de ne pas s'afficher du tout, il affiche du vide.

    J'ai aussi essayé de faire directement une vérification (E4X - mon dataProvider est en XML) en passant le dataProvider à la List
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:List dataProvider="{xmlData.children().(@reference == selectedNode.@id)}" labelField="@label" ... />
    Mais là le data binding ne marche plus (On doit pouvoir ajouter, supprimer et modifier les items dans chaque List)

    J'aimerais donc savoir s'il y a un moyen de demander au composant de ne pas afficher certains éléments (avec des critères précis) du dataProvider. Ce serait vraiment génial!!!

    La solution de creer un dataProvider pour chaque List ne me convient pas car le nombre de List peut etre indeterminé! L'utilisateur peut en créer et y rajouter d'autres items!!!

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Bonsoir,

    Je ne vois pas de solution toute faite là.
    A mon avis il faudrait soit retravailler ta liste et la diviser en plusieurs selon les cas avant de les mettre dans les différents dataProvider.
    Ou alors surcharger le composant graphique List qui attendra une fonction en entrée par exemple qui retournera un booléen qui déterminera si tu peux insérer ton élément ou pas.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Petite question préliminaire :est-ce que tes listes sont disjointes ou bien y-a-t'il des éléments communs à plusieurs listes ?


    Donc en supposant que le choix d'un dataProvider unique soit le bon choix, j'imaginerai une solution basée sur l'implémentation de l'interface IList (peut-être cette solution est-elle déjà implémentée dans Flex mais comme je n'utiilise pas XML je ne connais pas toutes les classes qui tournent autour).

    Ta classe "XMLFilterList" aura comme source de données ton objet XML. Tu lui ajoutera une fonction de filtrage et un listener sur l'objet XML pour s'actualiser à chaque modification de la source. Il faudra créer autant d'instances de XMLFilterList que tu auras de List.

    J'ai déjà implémenté l'interface IList et ce n'est pas très compliqué (beaucoup plus simple que l'interface ICollectionView).

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    @jylaxx Apparemment ce que tu m'expliques là est assez compliqué pour moi, je suis debutant. Pour ta question, les éléments sont disjoints, pas d'items communs à plusieurs List.

    J'envisage finalement d'utiliser plusieurs dataProvider (en ArrayCollection ou XMLListCollection) que je rangerai dans des tableaux indexés (ou Object). Je serai donc obliger de gerer les binding de façon manuelle.

    Merci (Je reste cependant ouvert, vos propositions sont les bienvenues)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    As tu essayé avec un filter sur ta liste ? je dis ça en toute innocence...

Discussions similaires

  1. Afficher/cacher des éléments de type select en fonction d'autres
    Par GLDavid dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/04/2006, 10h06
  2. Cacher certains éléments d'un site lors de l'impression
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/04/2006, 16h56
  3. pb afficher cacher des éléments
    Par fongus dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 04/04/2006, 13h34
  4. [JTree] Cacher certains éléments ...
    Par JamesP dans le forum Composants
    Réponses: 5
    Dernier message: 15/02/2006, 19h16
  5. Cacher certaines valeurs avec TDBEdit
    Par Vulcanos dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/09/2005, 16h14

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