DataGrid自定义右键

 

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
      creationComplete="creationCompleteHandler(event)">
 <fx:Declarations>
  <mx:Move id="moveHidden" xTo="-500" />    
  <mx:Move id="moveShown" xFrom="500" xTo="0" />      
  <mx:ArrayCollection id="dataProvider" >       
   <fx:Object name="name-001" email="email@001.com" address="address-001" />       
   <fx:Object name="name-002" email="email@002.com" address="address-002" />       
   <fx:Object name="name-003" email="email@003.com" address="address-003" />      
   <fx:Object name="name-004" email="email@004.com" address="address-004" />  
  </mx:ArrayCollection>      
  <fx:Object id="editItem" name="{input_name.text}" email="{input_email.text}" address="{input_address.text}" /> 
 </fx:Declarations>
 <fx:Script>        
  <![CDATA[            
   import mx.controls.Alert;            
   import mx.events.CloseEvent;            
   import mx.events.FlexEvent;                         
   
   private var gridMenu:ContextMenu;            
   private var createMenuItem:ContextMenuItem;           
   private var editorMenuItem:ContextMenuItem;          
   private var deleteMenuItem:ContextMenuItem;           
   private var refreshMenuItem:ContextMenuItem;          
   private var selectionMenuItem:ContextMenuItem;        
   protected function creationCompleteHandler(event:FlexEvent):void{            
    createMenuItem = new ContextMenuItem("添加新项目");              
    createMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); 
    editorMenuItem = new ContextMenuItem("编辑所选项");          
    editorMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler);   
    deleteMenuItem = new ContextMenuItem("删除所选项");         
    deleteMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); 
    refreshMenuItem = new ContextMenuItem("刷新列表");     
    refreshMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); 
    selectionMenuItem = new ContextMenuItem("设置为单选模式", true);     
    selectionMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); 
    gridMenu = new ContextMenu;             
    gridMenu.hideBuiltInItems();       
    gridMenu.customItems = [createMenuItem, editorMenuItem, deleteMenuItem, refreshMenuItem, selectionMenuItem];  
    gridMenu.addEventListener(ContextMenuEvent.MENU_SELECT, onMenuSelectHandler);             
    grid.contextMenu = gridMenu;           
   }                 
   
   protected function onMenuItemSelectHandler(event:ContextMenuEvent):void{ 
    switch(event.target){                  
     case createMenuItem:                  
      createItemHandler();               
      break;                             
     case editorMenuItem:                   
      editItemHandler();                 
      break;                            
     case deleteMenuItem:                  
      deleteItemsHandler();             
      break;                            
     case refreshMenuItem:                 
      grid.dataProvider = dataProvider; 
      break;                            
     case selectionMenuItem:               
      grid.allowMultipleSelection = !grid.allowMultipleSelection;    
      grid.selectedIndex = -1;     
      break;            
    }           
   }                
   protected function onMenuSelectHandler(event:ContextMenuEvent):void{  
    var selectItems:int = grid.selectedItems.length;            
    editorMenuItem.enabled = (selectItems == 1);               
    deleteMenuItem.enabled = (selectItems > 0);                
    selectionMenuItem.caption = grid.allowMultipleSelection ? "设置为单选模式" : "设置为多选模式";   
   }                    
   protected function createItemHandler():void{   
    grid.visible = false;              
    form.visible = true;              
    editItem = {name:'', email:'', address:''};       
   }                        
   protected function editItemHandler():void{    
    if (grid.selectedItem){  
     grid.visible = false;         
     form.visible = true;            
     editItem = grid.selectedItem;      
    }         
   }                  
   protected function deleteItemsHandler():void{       
    var items:Array = grid.selectedItems;         
    var delFunction:Function = function (event:CloseEvent):void{      
     if (event.detail != Alert.YES) return;               
     for (var i:int = 0; i < items.length; i++){              
      var index:int = dataProvider.getItemIndex(items[i]);      
      if (index != -1){           
       dataProvider.removeItemAt(index);        
      }                  
     }              
    }             
    Alert.yesLabel = "确定"; Alert.cancelLabel = "取消";    
    Alert.show("确定要删除选中的" + items.length + "项数据吗?", "确认删除", Alert.YES|Alert.CANCEL, null, delFunction, null, Alert.CANCEL);  
   }                   
   protected function saveHandler():void{           
    if (!dataProvider.contains(editItem)){               
     dataProvider.addItem(editItem);             
    }             
    cancelHandler();        
   }                    
   protected function cancelHandler():void{         
    form.visible = false;            
    grid.visible = true;            
   }       
   
  ]]>    
 </fx:Script>   
 <mx:DataGrid id="grid" width="100%" height="100%" showEffect="{moveShown}" hideEffect="{moveHidden}" dataProvider="{dataProvider}" allowMultipleSelection="true" doubleClickEnabled="true" doubleClick="{editItemHandler()}" >        
  <mx:columns>            
   <mx:DataGridColumn headerText="姓名" dataField="name"/>           
   <mx:DataGridColumn headerText="邮箱" dataField="email"/>           
   <mx:DataGridColumn headerText="地址" dataField="address"/>       
  </mx:columns>    
 </mx:DataGrid>    
 <mx:VBox id="form" horizontalAlign="center" verticalAlign="middle"       
    width="100%" height="100%" visible="false"      
    showEffect="{moveShown}" hideEffect="{moveHidden}"   
    backgroundColor="#FFFFFF">        
  <mx:Form>            
   <mx:FormItem label="姓名" horizontalAlign="center" width="100%" > 
    <mx:TextInput id="input_name" text="{editItem.name}" />      
   </mx:FormItem>    
   <mx:FormItem label="邮箱" horizontalAlign="center" width="100%" >  
    <mx:TextInput id="input_email" text="{editItem.email}" />       
   </mx:FormItem>        
   <mx:FormItem label="地址" horizontalAlign="center" width="100%" >      
    <mx:TextInput id="input_address" text="{editItem.address}" />   
   </mx:FormItem>   
   <mx:FormItem direction="horizontal" horizontalAlign="center" width="100%">
    <mx:Button label="保存"                    
         enabled="{!(input_name.text == '' || input_email.text == '' || input_address.text == '')}"          
         click="{saveHandler()}" />         
    <mx:Button label="取消" click="{cancelHandler()}" />           
   </mx:FormItem>     
  </mx:Form>  
 </mx:VBox>
</s:Application>

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值