找回密码
 立即注册

QQ登录

只需一步,快速开始

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

123

主题

8927

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13536

讲师达人悬赏达人元老葡萄SpreadJS 认证SpreadJS 高级认证微信认证勋章

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-29 10:31  /   查看:1841  /  回复:0

SpreadJS对于用在UI的操作都是通过Commands机制驱动的。
例如在Table上点击右键菜单,选择删除行,会调用tableDeleteRowsForContextMenu命令。
如果需要在点击执行前进行一些操作,可以通过重写命令execute方法的方式来实现。
操作做完后调用原有逻辑即可

下面代码演示了在删除数据之前,获取要删除内容。


  1. let deletTableRows = GC.Spread.Sheets.Commands.tableDeleteRowsForContextMenu.execute;

  2. GC.Spread.Sheets.Commands.tableDeleteRowsForContextMenu.execute = function(content, options, isUndo){

  3.     console.log(options)
  4.     if(isUndo){
  5.         console.log("undoAction")
  6.     }
  7.     else{
  8.         let sheet = content.getSheetFromName(options.sheetName);
  9.         let changeRows = options.selections;
  10.         console.log(sheet.getArray(changeRows[0].row, 0, changeRows[0].rowCount, sheet.getColumnCount()))
  11.     }
  12.     return deletTableRows.apply(this, arguments);
  13. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部