在Flex中给datagrid添加右键菜单项的具体实现
作者:暮色微凉
时间:2026-07-22
浏览:2
在Flex中为DataGrid添加右键菜单,需创建ContextMenu对象,删除默认菜单项,并添加自定义项(如“删除行”)。通过监听右键事件,根据选中行控制菜单项可见性,选择后执行删除操作,必要时刷新数据。
本文目录
复制代码
代码如下:xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="initApp()">
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);
}
}
]]>
作者最新文章
PDF怎么按页拆成单独文件?PDF按页拆分后怎么命名
2026-11-03 18:00
长网页转PDF怎么避免断图?网页转PDF怎么设置分页
2026-11-01 09:31
夸克资源库蓝光资源每日更新经典电视剧全集
2026-10-30 11:54
会声会影怎么导入音频 支持格式及步骤
2026-10-29 12:23
WPS表格常用功能实操:从录入到排序筛选的完整流程
2026-10-29 09:57
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































