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>
> >
> >
>


Reply via email to