I'm not sure how to group in the way you're wishing it, but I am sure that it can be done. I think the trick is with the item renderers. Which is something I just learned about. Here's my entire code, Sorry I can't release the entire http service since it's to a protected site, but it pulls back a basic XML file formatted like so: <rows> <row> <name>Bob</name> <other>other value</other> </row> </rows>
Main App MXML: ************************************************************** <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();"> <mx:Script> <![CDATA[ import mx.events.ItemClickEvent; import mx.collections.ArrayCollection; import mx.collections.XMLListCollection; import mx.utils.ArrayUtil; import mx.rpc.events.*; import mx.controls.Alert; import mx.collections.HierarchicalData; [Bindable] private var arcLibraries:ArrayCollection = new ArrayCollection(); [Bindable] private var xmllTemplates:XMLList = new XMLList(); [Bindable] private var curLibLevel:String = new String("enterprise"); [Bindable] private var usrLevel:String = new String("enterprise"); private function init():void{ changeUserID(); getTemplates.send(); vwSelectBtnSettings(); } private function changeUserID():void{ if(Boolean(Number(userID.text))){ arcLibraries = new ArrayCollection([ {label:"User Library", level:"user"}, {label:"Enterprise Library", level:"enterprise"}, {label:"System Library", level:"system"} ]); usrLevel = 'user'; } else{ arcLibraries = new ArrayCollection([ {label:"Enterprise Library", level:"enterprise"}, {label:"System Library", level:"system"} ]); usrLevel = 'enterprise'; } vwSelectBtnSettings(); } //on click will change user id to a valid value private function defaultUserID():void{ if (userID.text == '0'){userID.text= '11001'}else{userID.text= '0'}; changeUserID(); } private function httpService_fault(evt:FaultEvent):void { var title:String = evt.type + " (" + evt.fault.faultCode + ")"; var text:String = evt.fault.faultString; Alert.show(text,title); xmllTemplates = new XMLList(); } private function httpService_result(evt:ResultEvent):void { xmllTemplates = evt.result.row; gc.refresh(); gridTemplates.validateNow(); for (var i:int=gridTemplates.numChildren;i>-1;i--){ gridTemplates.selectedIndex=i; gridTemplates.expandItem(gridTemplates.selectedItem,true); } gridTemplates.selectedIndex=-1; } private function tabLibClick(evt:ItemClickEvent):void{ var targetComp:TabBar = TabBar(evt.currentTarget); curLibLevel = targetComp.dataProvider[evt.index].level; getTemplates.send(); vwSelectBtnSettings(); } private function vwSelectBtnSettings():void{ if(curLibLevel == usrLevel) {btnNew.enabled=btnEdit.enabled=btnHide.visible=true;btnAdopt.visible=false;btnEdit.label='Edit';} else{btnNew.enabled=btnEdit.enabled=btnHide.visible=false;btnAdopt.visible=true;btnEdit.label='View';} } private function gridClick():void{ var msg:String = new String(); msg = XML(gridTemplates.selectedItem).child("templateID"); Alert.show(msg); } ]]> </mx:Script> <mx:HTTPService id="getTemplates" url="../xmltoget.php?noheaders" showBusyCursor="true" result="httpService_result(event)" resultFormat="e4x" fault="httpService_fault(event)" method="POST"> <mx:request xmlns=""> <level>{curLibLevel}</level> <enterpriseID>1</enterpriseID> <userID>11001</userID> </mx:request> </mx:HTTPService> <mx:ViewStack id="viewController" x="0" y="0" height="100%" width="100%"> <!--viewController.selectedChild = vwSelect;--> <mx:Canvas id="vwSelect" x="0" y="0" height="100%" width="100%"> <mx:Label x="10" y="10" text="UserID"/> <mx:TextInput x="10" y="26" id="userID" text="0" editable="true" enabled="true" width="80" click="defaultUserID();" change="changeUserID();"/> <mx:Canvas x="10" y="80" width="600" height="500" borderStyle="solid" borderThickness="1"> <mx:AdvancedDataGrid id="gridTemplates" left="10" right="10" top="10" bottom="50" click="gridClick();"> <mx:dataProvider> <mx:GroupingCollection id="gc" source="{xmllTemplates}"> <mx:Grouping> <mx:GroupingField name="templateType"> </mx:GroupingField> </mx:Grouping> </mx:GroupingCollection> </mx:dataProvider> <mx:columns> <mx:AdvancedDataGridColumn dataField="templateType" id="hidCol" headerText="" width="0"/> <mx:AdvancedDataGridColumn dataField="name" headerText="Formal Name" width="280"/> <mx:AdvancedDataGridColumn dataField="abbreviation" headerText="Short Name" width="150"/> <mx:AdvancedDataGridColumn dataField="insertDate" headerText="Date Created" width="150"/> <mx:AdvancedDataGridColumn dataField="templateID" width="0" visible="false"/> </mx:columns> <mx:rendererProviders> <mx:AdvancedDataGridRendererProvider column="{hidCol}" depth="1" columnSpan="4" renderer="colSpanningHeader"/> </mx:rendererProviders> </mx:AdvancedDataGrid> <mx:Button id="btnNew" x="10" y="456" label="New" width="75"/> <mx:Button id="btnEdit" x="513" y="456" label="Edit" width="75"/> <mx:Button id="btnAdopt" x="430" y="456" label="Adopt" width="75"/> <mx:Button id="btnHide" x="430" y="456" label="Hide" width="75"/> </mx:Canvas> <mx:TabBar id="tabLibraries" x="10" y="56" height="26" dataProvider="{arcLibraries}" itemClick="tabLibClick(event);"> </mx:TabBar> </mx:Canvas> </mx:ViewStack> </mx:Application> **************************************************************** colSpanningHeader.mxml (called by the item renderer) **************************************************************** <?xml version="1.0" encoding="utf-8"?> <mx:Label xmlns:mx="http://www.adobe.com/2006/mxml" textAlign="center"> </mx:Label> **************************************************************** Hope this helps you out. ~Mike ps: I'm still pretty new to Flex, so please forgive any attrocious codding Balki wrote: > > Mike, > Even am struggling to group my data with AdvancedDataGrid. My Idea is to > display something similar to what I have attached > > Also, it would be of great help if you can share ur entire code. I will > also get something out of it. > > -- View this message in context: http://old.nabble.com/Flex-Data-Grid-Question-tp23766210p26302587.html Sent from the FlexCoders mailing list archive at Nabble.com.