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.

Reply via email to