我找到自定义右键菜单向后新增一行的文档,写了以后发现用SpreadSheets渲染的时候是有效的,但是我的场景需要用到设计器Designer,这种情况下 就没有效果了,请问有解决办法吗?
- function addItemIntoContextMenu(spread) {
- /*
- * 定义一个命令,作为右键菜单项的执行逻辑
- * */
- spread.commandManager().register("insertRowsBehind",
- {
- canUndo: true,
- execute: function (context, options, isUndo) {
- var Commands = GC.Spread.Sheets.Commands;
- // 在此加cmd
- options.cmd = "insertRowsBehind";
- if (isUndo) {
- Commands.undoTransaction(context, options);
- return true;
- } else {
- Commands.startTransaction(context, options);
- var sheet = spread.getActiveSheet();
- var sels = sheet.getSelections();
- if(sels && sels.length > 0){
- for(var i=0; i<sels.length; i++ ){
- var sel = sels[i];
- var row = sel.row;
- var rowCount = sel.rowCount;
- sheet.addRows(row+1, rowCount);
- }
- }
- Commands.endTransaction(context, options);
- return true;
- }
- }
- });
- // 获取右键菜单数组
- var menuData = spread.contextMenu.menuData;
- console.log(menuData);
- // 定义一个在行头区域执行的右键菜单项
- var insertRowsBehind = {
- command: "insertRowsBehind",
- text: "向后插入行",
- // name只要不重复即可
- name: "insertRowsBehind",
- // 把自己定义好的icon class加在这里
- iconClass:"gc-spread-custom-icon",
- workArea: "rowHeader"
- };
- // 将自定义的项,加入到“插入行”(insertRows)之后
- menuData.forEach(function (item, index) {
- if(item && item.name === "gc.spread.insertRows"){
- menuData.splice(index+1, 0, insertRowsBehind);
- }
- });
- }
复制代码
|