This example should help...
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical" verticalAlign="middle"
creationComplete="onCreationComplete()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
[Bindable] private var myContextMenu:ContextMenu;
private var approvedMenuItem:ContextMenuItem = new
ContextMenuItem("Approved", false, false);
private var approveMenuItem:ContextMenuItem = new
ContextMenuItem("Approve");
private var lastRollOverIndex:int;
[Bindable] private var dp:Array = [
{ symbol: "ADBE", name: "Adobe Systems Inc.", price: 49.95
},
{ symbol: "BETA", name: "Beta Inc.", price: 19.95 },
{ symbol: "CSCO", name: "Cisco Inc.", price: 45.95 },
{ symbol: "DELL", name: "Dell Inc.", price: 34.95 },
{ symbol: "IBM", name: "IBM Corp.", price: 42.55 }
];
private function onCreationComplete():void
{
approveMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
menuItemHandler);
myContextMenu = new ContextMenu();
myContextMenu.hideBuiltInItems();
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT,
menuSelectHandler);
}
private function
menuSelectHandler(event:ContextMenuEvent):void
{
dataGrid.selectedIndex = lastRollOverIndex;
var currentItem:Object = dataGrid.selectedItem;
if(currentItem.name == "Cisco Inc.")
{
myContextMenu.customItems = [approvedMenuItem];
}
else
{
myContextMenu.customItems = [approveMenuItem];
}
}
private function
menuItemHandler(event:ContextMenuEvent):void
{
var currentItem:Object = dataGrid.selectedItem;
Alert.show(currentItem.name);
}
]]>
</mx:Script>
<mx:DataGrid id="dataGrid" width="400" dataProvider="{dp}"
contextMenu="{myContextMenu}"
itemRollOver="lastRollOverIndex = event.rowIndex">
<mx:columns>
<mx:DataGridColumn headerText="Name" dataField="name" />
<mx:DataGridColumn headerText="Symbol" dataField="symbol"/>
<mx:DataGridColumn headerText="Price" dataField="price" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
HTH
Steve
--- In [email protected], "Dharmendra Chauhan"
<chauhan_i...@...> wrote:
>
> Hi Everybody,
> I need to enable/Disable Context Menu Item based the
selected row of the DG.ie I would perform some logic based on current
selected row to decide enabling/Disabling of context menu item.
>
> Classical example of this is Timesheet application.
> If a manager click on any of the entry which was already approved , he
should NOT be getting approve option enabled.
> I found some workaound to get this functionality workinng but they are
all browser based.They do not apply in my case as my application is
running on Flash Player.
>