Bonjour !
en fait, j'ai une DataGrid avec des elements, et l'une des colonnes contient du text (ou une image). Dans le cas ou elle contient du text, je souhaiterais que le text s'affiche entierement et que la taille de la ligne (Height) se cale sur ce text.
Pour l'instant mon code :
sachant que mon renderer est :
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 <mx:DataGrid id="list_versions_dg" width="90%" height="100%" creationComplete="this.setFocus();" dataProvider="{versionsData}" headerHeight="23" change="onChange()" doubleClickEnabled="true" doubleClick="viewVersion()" variableRowHeight="true" wordWrap="true"> <mx:columns> <mx:DataGridColumn id="previewColumn" headerText="text" dataField="rendition" sortable="true" width="220"> <mx:itemRenderer> <mx:Component> <renderers:ThumbNailVersionsRenderer currentSmartObject="{outerDocument.selectedSmartObject}"/> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> </mx:columns> </mx:DataGrid>
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
30
31
32 <?xml version="1.0"?> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.core.IFactory" width="100%" verticalAlign="middle" verticalGap="0" verticalScrollPolicy="off" horizontalAlign="center" xmlns:components="com.woodwing.components.*"> <!--width="100" height="100" --> <mx:Script> <![CDATA[ override protected function updateDisplayList (w:Number, h:Number) : void { super.updateDisplayList(w,h); if (textSlugline != null){ textSlugline.explicitWidth = this.width; ]]> </mx:Script> <mx:states> <mx:State name="image"> <mx:AddChild> <components:BytesEnabledImage width="100%" height="100%" id="imageThumb" scaleContent="true" source="{VersionsVO(this.data).getRenditionByType(RenditionType.THUMB_RENDITION).data}"/> </mx:AddChild> </mx:State> <mx:State name="text"> <mx:AddChild> <mx:Text id="textSlugline" htmlText="{VersionsVO(this.data).slugline}"/> </mx:AddChild> </mx:State> </mx:states> </mx:VBox>
sachant que pour qu'un text se resize bien, il faut lui donner une width explicite.
Pour l'instant ca marche presque, mais presque
Ce qui se passe c'est que lorsque qu'on resize dans un premier temps la hauteeur de la ligne n'est pas recalcule (donc trop grande lorsque qu'on agrandit et trop petite lorsqu'on retrecit), mais si on reclique une 2eme fois sur le divider de la colonne, alors c'est bon.
Quelqu'un voit il ou ca cloche et aurait-l une solution ?
Partager