本帖最后由 Fiooona 于 2020-7-21 17:49 编辑
背景: SpreadJS 在V11 之后增加了右键菜单的功能,在工作簿的不同区域右键点击,可以呼出不同的右键菜单,实际的项目中有小伙伴有这样的需求:想要在右击某些单元格或者其他区域时,删除、禁用或者添加一些右键菜单。示例实现: 1 禁用B2单元格中的清除功能(清除功能显示为灰色)
2 删除了表单名称右键菜单的插入选项
3 自定义右键图片的菜单
主要代码: /*
* 通过继承ContextMenu的方式自定义右键菜单逻辑
* */
function ContextMenu(){}
ContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
ContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {
- // 如果点击在tabStrip 表单名称区域 不显示插入选项
- if(hitInfo.tabStripHitInfo){
- for(let i=0; i<itemsDataForShown.length; i++){
- var item = itemsDataForShown[i];
- if(item.name === "gc.spread.insertSheet"){
- itemsDataForShown.splice(i,1) ;
- }
- }
- }
复制代码- // 点击在浮动对象区域
- if(hitInfo.worksheetHitInfo&&hitInfo.worksheetHitInfo.floatingObjectHitInfo &&hitInfo.worksheetHitInfo.floatingObjectHitInfo.floatingObject){
- // 自定义一个右键菜单 command命令需要根据需求再自定义
- itemsDataForShown.push( {text: "自定义一个菜单", name: "designer.formatChart", iconClass: "gc-spread-formatChart", command: "designer.formatChart", workArea: "chart"})
- }
复制代码
相关文章:深入解析如何自定义SpreadJS右键菜单(上)
深入解析如何自定义SpreadJS右键菜单(下)
|
|