Hi ,
I have an advanced data grid , with 8 columns one of the columns i want the 8
th column as a POPUPMenu Button, and when I click on the menu item it should
navigate to a url value which is in the Array dArr. Array ddArr has 2 values
,how can i do this I have tried many things.
Array ddArr has the values [dd.label,dd.url] and some valuses in the array has
more than one occurence, I mean [dd.label1,dd.url1],[dd.label2,dd.url2].
The values to be populated in the POPUPMenuButton , i have in an array
dArr.After doing this I see only the popupButton but no data from ddArr .
please help me out.
<?xml version="1.0"?>
<!-- Dashboard Main Service Summary table -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%"
height="100%" backgroundColor="#FFFFFF"
initialize="initApp();"
creationComplete="onCreationComplete();">
<mx:Style>
.hStyle { fontWeight:bold; fontFamily:Verdana; fontSize:12; align:center; }
</mx:Style>
<mx:Script>
<![CDATA[
var ddArr:ArrayCollection = new ArrayCollection();
var dp:ArrayCollection = new ArrayCollection();
var ddLabel:String="";
var ddUrl:String="";
var ddData:String="";
var ddRest:String="";
var popUpB:PopUpMenuButton;
ddData= xd[9];
ddRest=ddData;
var ddidx:int = ddData.indexOf("|");
// var dObj:Object=new Object();
while ( ddidx > 0 )
{
ddLabel= ddRest.substring( 0, ddidx );
ddRest= ddRest.substring(ddidx + 1 );
ddidx = ddRest.indexOf("|");
if( ddidx > 0)
{
// ddUrl= ddRest.substring(ddidx + 1 );
ddUrl= ddRest.substring(0, ddidx );
ddRest= ddRest.substring(ddidx + 1 );
ddidx = ddRest.indexOf("|");
}
dObj.label= ddLabel;
dObj.url= ddUrl;
ddArr.addItem(dObj);
}
popUpB=new PopUpMenuButton();
myMenu = new Menu();
myMenu.labelField = "Action";
myMenu.showRoot = true;
myMenu.width = popUpB.width;
myMenu.selectedIndex = 0;
myMenu.dataProvider = ddArr;
// myMenu.addEventListener("itemClick", itemClickHandler);
popUpB.popUp = myMenu;
dp.addItem( { "Index":xd[0], "Service":xd[1], "Priority":xd[2], "Current
SLA":xd[3],"Health":xd[4], "Quality":xd[5],
"Risk":xd[6], "Avail":xd[7], "OpMode":xd[8],
"dd":popUpB} );
dp = dpSrv;
gc.source=dp;
gc.refresh();
]]>
</mx:Script>
<mx:HTTPService id="sst" resultFormat="text" result="onJSONLoad(event)"
url="{sURL}" fault="onFaultLoad(event)"/>
<mx:Panel title="{cTitle}" width="100%" height="100%" titleStyleName="hStyle"
headerColors="[0xC5DFF9,0xEFF6FF]" >
<mx:AdvancedDataGrid id="srvTable" width="100%" height="100%" color="0x323232"
dragEnabled="true" dropEnabled="true"
enabled="true" showHeaders="true"
displayItemsExpanded="true" variableRowHeight="true" wordWrap="false"
initialize="gc.refresh();" >
<mx:dataProvider>
<mx:GroupingCollection id="gc" source ="{dpSrv}">
<mx:grouping>
<mx:Grouping>
<!-- <mx:GroupingField name="PService" /> -->
<mx:GroupingField name="Service" />
</mx:Grouping>
</mx:grouping>
</mx:GroupingCollection>
<!-- <mx:HierarchicalData id="gc" source="{dpSrv}"/> -->
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn id ="ddcol" dataField="dd" headerText=" Drill-down"
width="200" textAlign="left">
</mx:AdvancedDataGridColumn>
</mx:columns>
<mx:rendererProviders>
<mx:AdvancedDataGridRendererProvider dataField="dd" depth="1"
column="{ddcol}" columnIndex="8"
renderer="mx.controls.PopUpMenuButton" />
</mx:rendererProviders>
</mx:AdvancedDataGrid>
</mx:Panel>
</mx:Application>
thanks in advance,
Tom.