在Flex中给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"
creationComplete="initApp()">
<s:layout>
<s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.DataGridEvent;
import mx.events.FlexEvent;

import spark.events.GridEvent;
private var myContextMenu:ContextMenu;

private function initApp():void
{
popUpMenu();
}

private function popUpMenu():void
{
myContextMenu = new ContextMenu();
removeDefaultItems();
addCustomMenuItems();
//监听右键菜单弹出后的事件
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectedHandler);
myDataGrid.contextMenu = myContextMenu;
}
//删除原有菜单项
private function removeDefaultItems():void
{
myContextMenu.hideBuiltInItems();
var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
defaultItems.print = false;
}
//添加用户自定义菜单项
private function addCustomMenuItems():void
{
var item:ContextMenuItem = new ContextMenuItem("删除行");
//默认的菜单项
item.visible = false;
myContextMenu.customItems.push(item);
//监听选择菜单项后的事件
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, itemSelectedHandler);
}
//弹出菜单后的事件处理函数
private function menuSelectedHandler(event:ContextMenuEvent):void
{
var item:ContextMenuItem = myContextMenu.customItems[0] as ContextMenuItem;

if (myDataGrid.selectedIndex >= 0)
{
item.visible = true;
}
else
{
item.visible = false;
}
}
//选择菜单项后的事件处理函数
private function itemSelectedHandler(event:ContextMenuEvent):void
{

if (myDataGrid.selectedIndex >= 0)
{
myDataGrid.dataProvider.removeItemAt(myDataGrid.selectedIndex);
}
}

]]>
</fx:Script>
<s:DataGrid requestedRowCount="4" id="myDataGrid"
width="500">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="dataField1" headerText="列 1" id="col1"></s:GridColumn>
<s:GridColumn dataField="dataField2" headerText="列 2"></s:GridColumn>
<s:GridColumn dataField="dataField3" headerText="列 3"></s:GridColumn>
</s:ArrayList>
</s:columns>
<s:typicalItem>
<fx:Object dataField1="示例数据" dataField2="示例数据" dataField3="示例数据"></fx:Object>
</s:typicalItem>
<s:ArrayList>
<fx:Object dataField1="数据1" dataField2="数据1" dataField3="数据1"></fx:Object>
<fx:Object dataField1="数据2" dataField2="数据2" dataField3="数据2"></fx:Object>
<fx:Object dataField1="数据3" dataField2="数据3" dataField3="数据3"></fx:Object>
<fx:Object dataField1="数据4" dataField2="数据4" dataField3="数据4"></fx:Object>
</s:ArrayList>
</s:DataGrid>

</s:Application>

(0)

相关推荐

  • 在Flex中给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" crea

  • 百度地图给map添加右键菜单(判断是否为marker)

    废话不多说了,直接给大家贴代码了. js: var s;//经度 var w;//纬度 map.addEventListener("rightclick",function(e){ if(e.overlay){//判断右键单击的是否是marker }else{ s = e.point.lng;//经度 w = e.point.lat;//维度 RightClick();//右键单击map出现右键菜单事件 } }); //右键单击map出现右键菜单事件 function RightCli

  • JavaScript中layim之整合右键菜单的示例代码

    一. 效果演示 1.1.好友右键菜单: 1.2.分组右键菜单: 1.3.群组右键菜单: 二. 实现教程 接下来我们以好友右键菜单为例,实现步骤如下: 2.1.绑定好友右击事件: /* 绑定好友右击事件 */ $('body').on('mousedown', '.layim-list-friend li ul li', function(e){ // 过滤非右击事件 if(3 != e.which) { return; } // 不再派发事件 e.stopPropagation(); var o

  • C#自定义控件添加右键菜单的方法

    C#自定义控件添加右键菜单非常简单,主要用到控件,像control定义右键菜单,用items.add()叠加右键菜单内容,用click事件处理函数. 1.control是要定义右键菜单的控件. private void control_MouseDown(object sender, MouseEventArgs e) {    if (e.Button == MouseButtons.Right)    {        ContextMenu menu = new rightClickMen

  • 基于FineUI Grid控件添加右键菜单

    FineUI官方Demo上一直没有Grid右键菜单的实现,其实从4.1.x的版本开始,允许添加自定义的事件监听(Listeners),所以要实现这个功能已经相当容易了. ExtJs右键菜单有很多种,对于Grid控件来说,我这里只简单说明两种实现.即在表格的数据行上右键单击时弹出的菜单,以及在空白位置右键单击时弹出的菜单. 时间有限,废话不多说了,先看两个效果图.(实现环境 FineUI4.1.6,.NET 4.0因为需要指定控件的ID) 1. 数据行右键菜单 2. 空白处右键菜单 实现方法: 第

  • IE奥秘——添加新菜单项(推荐)

    本文将介绍如何添加一个菜单项到微软Internet Explorer浏览器的"工具"(Tools)下拉菜单中,这个新添加的菜单项表示运行一个Microsoft Win32应用程序,或者表示运行一个脚本程序. 需要的基础知识与环境 如果想在Internet Explorer中准确地完成在"工具"菜单下添加菜单项目的功能,你必须要熟悉注册表的操作. 而且,这里讨论的方法,要求浏览器是Internet Explorer 版本5 或者更高版本. 通用步骤 这一节描述的步骤必

  • Flex中给按钮添加链接点击链接打开网页的方法

    Flex中如何给一个按钮添加链接,点击链接打开一个网页呢? 可以用 navigateToURL 或者 htmlText 实现,请看下面的例子 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()"

  • ASP.NET中为DataGrid添加合计字段

    论坛中最常见的一个问题是:" 我怎样在 DataGrid 中显示列合计?". 我亲自多次为这个问题提供了示例代码,因此,我想在DotNetJunkies 的标题中提供这么一份指南. 在这份指南中你将会学到怎样在 DataGrid 中编程实现对某一列的值进行统计,并在 DataGrid 的页脚中显示其合计值.这份指南中供下载的示例中包括了 C# 和 Visual Basic.NET 两种代码. 这份指南的最终结果看起来像这样: 从上图可看出: 上面所用到的屏幕图片中的 DataGrid

  • 为jQuery.Treeview添加右键菜单的实现代码

    先上图: jquery.treeview 数据通过JSON数据加载,有需要的朋友,可以通jquery的AJAX方法获取相关的JSON数据 json的数据格式:{"id":1,"parentid":0,"title":"标题","children":[{ ...}]} 需要两个jQuery 两件 (jquery.treeview.min.js 树插件 和 jquery.contextmenu.r2.js 右键

  • 为EasyUI的Tab标签添加右键菜单的方法

    前期的准备工作: 1.下载DEMO源码,并升级为最新版本(jquery 1.7.2,Easyui 1.2.6),直接替换就可以啦,升级easyui 是的要把css js theme 全部替换 2.在首页的HTML代码中:将 复制代码 代码如下: <div id="mm" class="easyui-menu" style="width:150px;"> <div id="mm-tabupdate">刷新

随机推荐