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 :

Dimensionner un DataGrid en fonction de son contenu


Sujet :

Flex

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut Dimensionner un DataGrid en fonction de son contenu
    Bonjour,

    Je cherche à réaliser quelque chose qui m'a semblé, au premier abord, fort simple mais qui en fait ne l'est peut-être pas. Etant relativement nouveau dans le monde de Flex il est fort possible que ce soit moi qui n'ait pas encore compris les principes fondamentaux de la techno.

    Mon objectif est de réaliser un DataGrid s'adaptant à son contenu.

    Ce DataGrid possède 3 colonnes dont l'une des trois est un simple champs texte dont la largeur est variable. Je souhaite faire en sorte que ce champs texte soit intégralement visible (pas de retour à la ligne et pas de troncage visuel).

    Mon code actuel ressemble à ceci :

    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
     
    <mx:DataGrid horizontalScrollPolicy="off" dataProvider="{dataProvider}" alternatingItemColors="0xFFFFFF" verticalGridLines="false" showHeaders="false">
    	<mx:columns>
    		<mx:DataGridColumn resizable="false" dataField="name"/>
    		<mx:DataGridColumn resizable="false" width="60">
    			<mx:itemRenderer>
    				<mx:Component>
    					<mx:Button label="Btn1"/>
    				</mx:Component>
    			</mx:itemRenderer>
    		</mx:DataGridColumn>
    		<mx:DataGridColumn resizable="false" width="60">
    			<mx:itemRenderer>
    				<mx:Component>
    					<mx:Button label="Btn2"/>
    				</mx:Component>
    			</mx:itemRenderer>
    		</mx:DataGridColumn>
    	</mx:columns>
    </mx:DataGrid>
    Ce code dimensionne la première colonne avec la largeur par défaut (100px).

    Y a-t-il une méthode simple pour faire en sorte que la première colonne soit de la largeur du texte le plus long qu'elle contiendra ? Dois-je surcharger le calcul des dimensions de ma DataGridColumn ?

    Merci d'avance pour vos réponses.

  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,

    en mettant des pourcentages (100%) dans la propriété width tu devrais pouvoir y arriver je pense.

    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 averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    J'y ai effectivement songé mais la classe DataGridColumn ne semble pas accepter de taille en pourcentage et lorsque je fixe la taille de la DataGrid à 100%, le résultat empire (les largeurs de toutes les colonnes sont encore plus réduites).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut
    en cherchant la chaine de caractère la plus longue, il sera possible de faire un calcul pour fixer la largeur des colonnes.

  5. #5
    Membre chevronné
    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
    Par défaut
    Citation Envoyé par luilui Voir le message
    en cherchant la chaine de caractère la plus longue, il sera possible de faire un calcul pour fixer la largeur des colonnes.
    Sur une grosse datagird, ça peut être catastrophique

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Par défaut
    il suffit d'utiliser wordWrap="true"
    bonne journée.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2008, 10h30
  2. Mise en forme d'une cellule en fonction de son contenu
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/01/2008, 10h42
  3. redimensionnement dynamique de frame en fonction de son contenu
    Par kowal_2205 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/08/2007, 15h37
  4. [HTML/CSS] Taille d'un <div> en fonction de son contenu
    Par hedgehog dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 14/12/2006, 18h57
  5. Comment redimensionner un TEdit en fonction de son contenu ?
    Par Tempotpo dans le forum Composants VCL
    Réponses: 10
    Dernier message: 25/07/2005, 21h52

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