I placed the height at 80 so that I could force a vertical scroll bar. That way I didnt have to add more data to turn on the vertical scroll bar.
basically I need a grid to resize its entire width on a column resize event. When the grid's width is too large to fit in a panel, I want the grids horizontal scroll bar to come on. The code below doesnt work if a vertical scroll bar is present. Let me know if the scenario doesnt make sense. --- In flexcoders@yahoogroups.com, Marco Catunda <marco.catu...@...> wrote: > > I didn't understand very well, but If you remove height="80" property > in below line, > the vertical scroll bar go away. > > <mx:AdvancedDataGrid width="318" height="80" id="dg" > horizontalCenter="0" dataProvider="{arr}" > horizontalScrollPolicy="auto" > > > -- > Marco Catunda > > > On Wed, Apr 22, 2009 at 8:52 AM, labosox <lgad...@...> wrote: > > > > > > Hello, > > > > I am trying to create a grid that will update its size on a column resize > > event. I want the grid to keep getting large until they hit a max width then > > turn on a horizontal scroll bar. > > > > Everything seems to work fine unless I have a vertical scroll bar present in > > the grid. When I try to re-size a column the datagrid adds a horizontal > > scroll bar automatically. > > > > Heres my code: > > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" > > creationComplete="initApp()" viewSourceURL="srcview/index.html"> > > <mx:Script> > > <![CDATA[ > > import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn; > > import mx.controls.advancedDataGridClasses.AdvancedDataGridRendererProvider; > > import mx.events.IndexChangedEvent; > > import mx.events.ResizeEvent; > > import mx.collections.IViewCursor; > > import mx.collections.ArrayCollection; > > import mx.rpc.events.ResultEvent; > > import mx.events.DataGridEvent; > > import mx.events.AdvancedDataGridEvent; > > import mx.controls.dataGridClasses.DataGridColumn; > > import mx.managers.CursorManager; > > public var bDummy:Boolean = false; > > > > [Bindable] > > private var itemAC:ArrayCollection; > > > > private function initApp():void{ > > > > dg.maxWidth = stuff.width; > > dg.addEventListener(AdvancedDataGridEvent.COLUMN_STRETCH, resizeCol); > > } > > > > private function resizeCol(event:AdvancedDataGridEvent):void > > { > > var _colIndex:Number = event.columnIndex; > > var width:Number; > > > > for(var i:int = 0; i <= dg.columns.length - 1; i++) > > { > > width += dg.columns[i].width; > > } > > > > dg.width = width; > > > > //ive tried to add 18 here to handle the scroll bar but then the maxWidth > > //is ignored and the grid keeps resizing outside of its maxWidth > > > > } > > > > ]]> > > </mx:Script> > > <mx:Array id="arr"> > > <mx:Object name="Redsox" quanity="10" cost="1000"/> > > <mx:Object name="Rays" quanity="11" cost="500"/> > > <mx:Object name="Yankees" quanity="20" cost="2000"/> > > </mx:Array> > > <mx:Canvas width="500" height="45%" backgroundColor="red" > > horizontalCenter="0" > > verticalCenter="-65" id="stuff" verticalScrollPolicy="off" > > horizontalScrollPolicy="off"> > > <mx:AdvancedDataGrid width="318" height="80" id="dg" horizontalCenter="0" > > dataProvider="{arr}" > > horizontalScrollPolicy="auto" > > > <mx:columns> > > <mx:AdvancedDataGridColumn width="100" headerText="name" dataField="name"/> > > <mx:AdvancedDataGridColumn width="100" headerText="quanity" > > dataField="quanity"/> > > <mx:AdvancedDataGridColumn width="100" headerText="cost" dataField="cost"/> > > </mx:columns> > > </mx:AdvancedDataGrid> > > </mx:Canvas> > > > > </mx:Application> > > > > >