DataGrid上右键弹出菜单

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" mouseOver="getMouseTarget(event)" applicationComplete="onAppCreated()">

<mx:Script>
 
 <![CDATA[
  import mx.events.MenuEvent;
  import mx.controls.MenuBar;
 import mx.managers.PopUpManager;
 import mx.controls.Alert;
 import flash.display.DisplayObject;
 import mx.controls.Menu;
 import flash.external.ExternalInterface;
 
 private var mouseTarget:DisplayObject;
 private var headerMenu:Menu;
 private var bodyMenu:Menu;
 
  private function onAppCreated():void{
   ExternalInterface.addCallback("rightClick",onMouseRightButtonClicked);
  }
  
  private function onMouseRightButtonClicked():void{
   if(headerMenu != null) headerMenu.hide();
   if(bodyMenu != null)  bodyMenu.hide();
   if(mouseTarget.toString().search("DataGridHeader") != -1){
    headerMenu = Menu.createMenu(null,myMenuData,false);
       headerMenu.labelField="@label";
       headerMenu.show(stage.mouseX,stage.mouseY);
   }else if(mouseTarget.toString().search("ListBaseContentHolder") != -1){
    bodyMenu = Menu.createMenu(null,ContentHolder,false); //创建弹出菜单,指明弹出菜单得内容
    bodyMenu.labelField="@label";//指明弹出菜单,显示的字段
    bodyMenu.addEventListener(MenuEvent.ITEM_CLICK,menuHandler);  //指明点击菜单项时响应的函数
    bodyMenu.show(stage.mouseX,stage.mouseY);
   }
   
  }
  
  private function menuHandler(event:MenuEvent):void{
   if(event.item.@eventName=="delete"){//delete操作
    Alert.show("执行delete菜单操作!!!");
   }else if(event.item.@eventName=="baidu"){
    Alert.show("执行baidu菜单操作!!!");
   }
  }
  
  private function getMouseTarget(event:MouseEvent):void{
   mouseTarget =DisplayObject(event.target);
   
  }
 ]]>
</mx:Script>
 <mx:DataGrid x="62" y="72" id="CDR">
   <mx:dataProvider>
      <mx:Object price="10"/>
      <mx:Object p="20"/> 
   </mx:dataProvider>
  <mx:columns>
   <mx:DataGridColumn headerText="Column 1" dataField="price"/>
   <mx:DataGridColumn headerText="Column 2" dataField="p"/>
   <mx:DataGridColumn headerText="Column 3" dataField="col3"/>
  </mx:columns>
 </mx:DataGrid>
 <mx:DataGrid x="425" y="72" id="CDRlIST">
  <mx:columns>
   <mx:DataGridColumn headerText="Column 1" dataField="col1"/>
   <mx:DataGridColumn headerText="Column 2" dataField="col2"/>
   <mx:DataGridColumn headerText="Column 3" dataField="col3"/>
  </mx:columns>
 </mx:DataGrid>
  <!-- Define the menu data. This is an official example from livedoc -->
    <mx:XML format="e4x" id="myMenuData">
        <root>
            <menuitem label="MenuItem A">
                <menuitem label="SubMenuItem A-1" enabled="false"/>
                <menuitem label="SubMenuItem A-2"/>
            </menuitem>
            <menuitem label="MenuItem B" type="check" toggled="true"/>
            <menuitem label="MenuItem C" type="check" toggled="false"/>
            <menuitem type="separator"/>    
            <menuitem label="MenuItem D">
                <menuitem label="SubMenuItem D-1" type="radio" groupName="one" />
                <menuitem label="SubMenuItem D-2" type="radio" groupName="one" toggled="true"/>
                <menuitem label="SubMenuItem D-3" type="radio" groupName="one" />
            </menuitem>
            <menuitem type="separator"/> 
            <menuitem label="Custom View Source"/>
        </root>
    </mx:XML>
   
    <mx:XML id="ContentHolder" source="ContentHolderMenu.xml">
     
    </mx:XML>
</mx:Application>

 

 

 

ContentHolderMenu.xml:

 

<?xml version="1.0" encoding="utf-8"?>
 <root>
            <menuitem label="删除" eventName="delete"/>
               <menuitem label="搜索" eventName="search">
                 <menuitem label="使用百度" eventName="baidu"/>
                 <menuitem label="使用google" eventName="google"/>
               </menuitem>
</root>
</xml>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值