Setting the header height on a DataGrid control in Flex
The following example shows how you can set the header height on a Flex DataGrid control by setting the headerHeight property.
Full code after the jump.
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/06/16/setting-the-header-height-on-a-datagrid-control-in-flex/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
private function init():void {
slider.value = dataGrid.headerHeight;
}
]]>
</mx:Script>
<mx:Array id="arr">
<mx:Object col1="1.One" col2="1.Two" />
<mx:Object col1="1.One" col2="1.Two" />
<mx:Object col1="1.One" col2="1.Two" />
<mx:Object col1="1.One" col2="1.Two" />
<mx:Object col1="1.One" col2="1.Two" />
</mx:Array>
<mx:ApplicationControlBar dock="true">
<mx:Form styleName="plain">
<mx:FormItem label="headerHeight:">
<mx:HSlider id="slider"
minimum="0"
maximum="40"
snapInterval="1"
liveDragging="true" />
</mx:FormItem>
<mx:FormItem label="showHeaders:">
<mx:CheckBox id="checkBox"
selected="true" />
</mx:FormItem>
</mx:Form>
</mx:ApplicationControlBar>
<mx:DataGrid id="dataGrid"
dataProvider="{arr}"
headerHeight="{slider.value}"
showHeaders="{checkBox.selected}"
initialize="init();">
<mx:columns>
<mx:DataGridColumn dataField="col1" />
<mx:DataGridColumn dataField="col2" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
View source is enabled in the following example.
You can also set the headerHeight property using ActionScript, as seen in the following example:
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/06/16/setting-the-header-height-on-a-datagrid-control-in-flex/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
import mx.events.SliderEvent;
private function init():void {
slider.value = dataGrid.headerHeight;
}
private function slider_change(evt:SliderEvent):void {
dataGrid.headerHeight = evt.value;
}
]]>
</mx:Script>
<mx:Array id="arr">
<mx:Object col1="1.One" col2="1.Two" />
<mx:Object col1="1.One" col2="1.Two" />
<mx:Object col1="1.One" col2="1.Two" />
<mx:Object col1="1.One" col2="1.Two" />
<mx:Object col1="1.One" col2="1.Two" />
</mx:Array>
<mx:ApplicationControlBar dock="true">
<mx:Form styleName="plain">
<mx:FormItem label="headerHeight:">
<mx:HSlider id="slider"
minimum="0"
maximum="40"
snapInterval="1"
liveDragging="true"
change="slider_change(event);" />
</mx:FormItem>
<mx:FormItem label="showHeaders:">
<mx:CheckBox id="checkBox"
selected="true" />
</mx:FormItem>
</mx:Form>
</mx:ApplicationControlBar>
<mx:DataGrid id="dataGrid"
dataProvider="{arr}"
showHeaders="{checkBox.selected}"
initialize="init();">
<mx:columns>
<mx:DataGridColumn dataField="col1" />
<mx:DataGridColumn dataField="col2" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
For another example of toggling the header altogether using the showHeaders property, see “Toggling a Flex DataGrid control’s header row”.
Peter deHaan
Peter deHaan currently works for Adobe on the Flex SDK QA team. While not working on Flex, Flash, and ColdFusion applications, Peter enjoys making up bios and writing in 3rd person. Peter's rarely updated blog can be found at blogs.adobe.com/pdehaan/, actionscriptexamples.com, airexamples.com, and coldfusionexamples.com.
-
Add Widgets (Content Sidebar)
This is your Content Sidebar. Edit this content that appears here in the widgets panel by adding or removing widgets in the Content Sidebar area.
0 Responses to Setting the header height on a DataGrid control in Flex
Leave a Reply Cancel reply
-
Categories
- Accordion
- AccordionHeader
- ActionScript
- AddChild
- AdvancedDataGrid
- Alert
- alpha
- Animate
- AnimateProperties
- Application
- Application (Spark)
- ArrayCollection
- BarChart
- baseColor
- beta
- beta1
- beta2
- Bitmap
- Bitmap/BitmapData
- BitmapData
- BitmapFill
- BitmapFill (Spark)
- BitmapGraphic
- BitmapImage
- BitmapImage (Spark)
- BitmapImageResizeMode
- Border (Spark)
- BorderContainer (Spark)
- Box
- BuildInfo
- Button
- Button (Spark)
- ButtonBar
- ButtonBar (Spark)
- ByteArray
- Camera
- Charting
- CheckBox
- CheckBox (Spark)
- ClassFactory
- CollectionEvent
- Color
- ColorPicker
- ColorUtil
- ComboBox
- ComboBoxArrowSkin
- Compiler
- Component
- Component (Spark)
- Configuration
- Container
- ContextMenu
- ContextMenuEvent
- ContextMenuItem
- CSSCondition
- CSSSelector
- CSSStyleDeclaration
- CurrencyFormatter
- CursorManager
- Data Binding
- DataGrid
- DataGrid (Spark)
- DataGridColumn
- Date
- DateBase
- DateChooser
- DateField
- DateFormatter
- Debugging
- DefaultComplexItemRenderer
- DefaultTileListEffect
- DropDownList
- DropDownList (Spark)
- DropDownListButtonSkin
- DropDownListSkin
- DropShadowFilter
- E4X
- Effects
- Ellipse
- EmailValidator
- Embed
- Event
- Fade
- FileFilter
- FileReference
- fill
- Filters
- Flash
- Flash Integration
- FlashVars
- Flex 3 SDK
- Flex Builder
- Flex Builder 3
- Flex SDK
- Flex4
- FLVPlayback
- FocusManager
- FontLookup
- Fonts
- Form
- Form (Spark)
- FormHeading (Spark)
- FormItem
- FormItem (Spark)
- Forms
- FTETextField (Spark)
- FullScreen
- FullScreenEvent
- FxAnimateColor
- FxButtonBar
- FxCheckBox
- FXG
- FxHScrollBar
- FxHSlider
- FxList
- FxNumericStepper
- FxRadioButton
- FxRotate3D
- FxScroller
- FxTextArea
- FxTextInput
- FxToggleButton
- FxVScrollBar
- FxVSlider
- getStyleDeclaration()
- GradientEntry
- Graphic (Spark)
- HBox
- HDividedBox
- HGroup (Spark)
- HorizontalLayout
- HorizontalList
- HSBColor (Spark)
- HScrollBar (Spark)
- HSlider
- HSlider (Spark)
- HTML template
- ID3Info
- Image
- Image (Spark)
- ImageSnapshot
- itemRenderer
- JointStyle
- Label
- Label (Spark)
- Legend
- LegendItem
- LigatureLevel
- Line
- LinearGradientStroke
- LineScaleMode
- LinkBar
- LinkButton
- List
- List (Spark)
- Menu
- MenuBar
- Metadata
- MetadataEvent
- Model
- Mouse
- MouseCursor
- MouseEvent
- Move
- Namespace
- NavigatorContent (Spark)
- needsSWF
- NetConnection
- NetStream
- Nightly Builds
- NumberBaseRoundType
- NumberFormatter
- NumberValidator
- NumericCompare
- NumericStepper
- NumericStepper (Spark)
- ObjectProxy
- ObjectUtil
- paddingLeft
- paddingRight
- Panel
- Panel (Spark)
- Parallel
- Path
- PieChart
- PieSeries
- PieSeriesItem
- PopUpAnchor (Spark)
- PopUpButton
- PopUpManager
- ProgrammaticSkin
- ProgressBar
- PropertyChangeEvent
- QName
- RadialGradient
- RadioButton
- RadioButton (Spark)
- RadioButtonGroup
- RadioButtonGroup (Spark)
- Rect
- RegExp
- Regular Expressions
- Repeater
- RichEditableText
- RichText
- RichText (Spark)
- RichTextEditor
- Rotate
- Rotate3D (Spark)
- Scroller (Spark)
- Sequence
- setStyle()
- SimpleText
- SimpleText (Spark)
- skinClass
- Slider
- SliderEvent
- SolidColor
- SolidColorStroke
- Sort
- SortField
- Sound
- SoundEffect
- Spinner (Spark)
- SpriteVisualElement (Spark)
- StageDisplayState
- States
- StringUtil
- StringValidator
- StyleManager
- Styles
- SWFLoader
- SWFObject
- System
- SystemManager
- TabBar
- TabBar (Spark)
- TabNavigator
- TabStopFormat
- Text
- Text Layout Framework (TLF)
- TextArea
- TextArea (Spark)
- TextBox
- TextConverter
- TextEvent
- TextFlow
- TextFlowUtil
- TextFormat
- TextGraphic
- TextInput
- TextInput (Spark)
- TextLayoutFormat
- TextView
- Themes
- TileLayout
- TileList
- TileOrientation
- Timer
- TitleWindow
- TitleWindow (Spark)
- TLF
- ToggleButton (Spark)
- ToggleButtonBar
- ToolTip
- Transition
- Tree
- TruncationOptions
- UIComponent
- UIFTETextField
- Updater
- URLLoader
- URLRequest
- URLUtil
- URLVariables
- ValidationResultEvent
- Validator
- Validators
- VBox
- VDividedBox
- Vector
- VerticalLayout
- VerticalLayout (Spark)
- VGroup (Spark)
- Video
- VideoDisplay
- VideoElement
- VideoElement (Spark)
- VideoEvent
- VideoPlayer (Spark)
- VideoPlayerScrubBar
- ViewStack
- VScrollBar (Spark)
- VSlider
- VSlider (Spark)
- XML
- XMLList
- XMLListCollection
- ZipCodeValidator
- ZipCodeValidatorDomainType
- Zoom
-
Articles
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
-
Meta


Thanks for this website .. very useful !!
Hey Peter
Do you know of a good tutorial or example of returning information to flex from a database (images and prices) using php? I’m trying to return these and display them in a tilelist but can’t seem to accomplish it and don’t know if it’s on the php end or the flex end that is not working. ANY advice or direction to go would be highly appreciated!
Thanks
Nick
Nick,
Try the Flex 3 Getting Started guide, http://learn.adobe.com/wiki/display/Flex/Getting+Started
It has several examples using PHP, ColdFusion, Java, and ASP.
Apart from that, try the Adobe Flex Developer Center (http://www.adobe.com/devnet/flex/) or asking on the FlexCoders list.
Peter
Thank you for your tutorials.
It’s possible to set a handCursor to a DataGrid Control?
I mean not only the Headers but the list too, preserving the list properties like the roll over and the selected Item color while using the hand cursor on the rows.
I try this example but it’s seems that not work properly.
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Array id="arr"> <mx:Object col1="1.One" col2="1.Two" /> <mx:Object col1="1.One" col2="1.Two" /> <mx:Object col1="1.One" col2="1.Two" /> <mx:Object col1="1.One" col2="1.Two" /> <mx:Object col1="1.One" col2="1.Two" /> </mx:Array> <mx:DataGrid useHandCursor="true" buttonMode="true" dataProvider="{arr}"> <mx:columns> <mx:DataGridColumn dataField="col1" /> <mx:DataGridColumn dataField="col2" /> </mx:columns> </mx:DataGrid> </mx:Application>Thank you for your time.
Jose Luis Garcia,
I’ve never tried this, so I don’t know how well these suggestions will work (if at all). You may want to ask on the FlexCoders mailing list.
Idea #1: Use a custom item renderer (Label or something) which sets the
useHandCursorandbuttonModeproperties:<mx:DataGrid dataProvider="{arr}"> <mx:columns> <mx:DataGridColumn dataField="col1" /> <mx:DataGridColumn dataField="col2" /> </mx:columns> <mx:itemRenderer> <mx:Component> <mx:Label useHandCursor="true" buttonMode="true" mouseChildren="false" /> </mx:Component> </mx:itemRenderer> </mx:DataGrid>Idea #2: Extend the DataGrid control and override the protected
drawRowBackground()method and set theuseHandCursorandbuttonModeproperties on thelistContentproperty.package comps { import flash.display.Sprite; import mx.controls.DataGrid; public class MyDataGrid extends DataGrid { public function MyDataGrid() { super(); } override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void { super.drawRowBackground(s, rowIndex, y, height, color, dataIndex); listContent.buttonMode = true; listContent.useHandCursor = true; listContent.mouseChildren = false; } } }Again, I’ve never tried this before and I expect there is a much better approach out there.
Peter
Thank you very much peter
I really appreciate the time you expend in the solutions you propose.
I will keep your advise and try this out on FlexCoders mailing list.
Again thank you very much.
Hey Peter,
I read your articles on adobe about customizing data grids in flash. At the end of
http://www.adobe.com/devnet/flash/quickstart/datagrid_pt3/
you show how to add a custom UILoader to the data grid and hint at the idea of being able to do the same with checkboxes, buttons, movieclips etc.
The only examples I have been able to find so far for these are AS2 versions that extend UIObject, not implement ICellRenderer.
Could you help me out in any way?
Hi Peter,
Since we can set the height of a header in a datagrid is it also possible to have more than one line of text in the header display? This would be to help shorten column width when you have long header names.
BTW.. I love this site!!
hello frnds,
could we set corner radious to datagrid?
thx u in advanced,
abhishekchess1@gmail.com
:)