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 :

petit souci itemRenderer


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut petit souci itemRenderer
    Bonjour,

    Mon probleme est simple : J'ai un DataGrid avec une colonne de checkbox (itemRenderer).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <mx:DataGridColumn headerText="Display ?"
    	dataField="display" width="70" textAlign="center" rendererIsEditor="true" 
    	editorDataField="selected" itemRenderer="WorldCheckBoxRenderer"/>
    Je veux cependant que la checkbox n'apparaisse pas dans la derniere ligne de mon datagrid. Voici ma tentative de code pour l'itemRenderer

    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
    27
    28
    29
    <?xml version="1.0" encoding="utf-8"?>
    <mx:CheckBox xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initCB()">
     <mx:Script>
      <![CDATA[
    	import com.model.MyModelLocator
    	import mx.controls.Alert;
    	import mx.events.CollectionEvent;
     
    	public var model : MyModelLocator = MyModelLocator.getInstance();
     
    	public function initCB():void { 
    model.myDataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, handleDataChanged);
    refresh();
    					 	}        
     
    	public function	handleDataChanged(event:Event):void{
    			            	refresh();
    			            }
     
            public function refresh():void
    			            {
    if (listData.rowIndex==model.myDataProvider.length-1){
    			           Alert.show("in refresh");
    				  this.visible=false;
    				}		  
    	}
    		]]>
    	</mx:Script>
    </mx:CheckBox>
    Ca marche quand la grille est cree, la checkbox de la derniere ligne est bien cachee, mais quand je change myDataProvider qui alimente mon DataGrid, la CheckBox reapparait. J'ai essaye d'utiliser l'evenement COLLECTION_CHANGE, et bien que je capte l'evenement (je recois l'Alert "in refresh"), ca ne cache pas la checkbox pour autant. En gros mon premier refresh() lors de l'appel de initCB() marche mais pas les refresh suivant()

    J'ai aussi essaye d'utiliser [Bindable("dataChange")] mais sans succes non plus.

    Merci d'avance pour vos commentaires!

  2. #2
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Salut,

    c'est peut etre une remarque idiote, mais pourquoi cacher cette derniere ligne?
    En fait, tu as une dataGrid qui n'affiche que des checkbox, alors pourquoi avoir dans ton dataProvider un élément qui ne sert à rien?

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    salut jim,

    Non actuellement il y a 4 autres colonnes avec du contenu, mais ma checkbox ne me sert a rien pour la derniere ligne de MyDataProvider, donc je souhaite la cacher en utilisant la propriete visible=false. J'arrive a la cacher a l'initialisation mais des que MyDataProvider change, la checkbox reapparait. Le fonctionnement des itemRender n'est pas tres intuitif et je me casse la tete pour un probleme simple en apparence

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Par défaut
    Salut, test dans ton itemrenderer si tu es à la dernière ligne de ta datagrid et si oui tu fais un rendu vide au lieu d'une checkbox

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Salut,

    J'ai trouve la solution a mon probleme, il fallait simplement override le set data dans l'itemRenderer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    override public function set data(value:Object):void{
    			                super.data = value;
    			                if (listData.rowIndex==model.myDataProvider.length-1){
    			                	displayCB.visible=false;
    			                }
    			                else{
    			                	displayCB.visible=true;
    			                }
    			                displayCB.selected=data[_listData.dataField];
    			            }
    Si ca peut servir a quelqu'un !

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    A noter l'excellent blog de Peter Ent qui a publie une serie d'article tres en detail sur les item renderer et les item editor, ce qui m'a permis de comprendre toute cette mecanique.

    http://weblogs.macromedia.com/mtadmi...=item+renderer

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

Discussions similaires

  1. Petit soucis pour se connecter à l'adsl
    Par Blowih dans le forum Réseau
    Réponses: 4
    Dernier message: 28/07/2004, 00h16
  2. petit soucy de fenetre cmd
    Par FeetloveR666 dans le forum Windows
    Réponses: 5
    Dernier message: 03/07/2004, 14h24
  3. petit soucis lors d'un LOAD DATA INFILE
    Par Jovial dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 04/06/2004, 11h58
  4. Réponses: 6
    Dernier message: 21/01/2004, 13h25
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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