找回密码
 立即注册

QQ登录

只需一步,快速开始

chou19870206

初级会员

26

主题

70

帖子

206

积分

初级会员

积分
206

[已处理] 删除行问题 关闭

chou19870206
初级会员   /  发表于:2024-6-5 09:09  /   查看:1536  /  回复:7
1金币
我有个需求是有些行用户可以删除,有些行用户不可以删除,避免无删除请问应该怎么控制呢?

我能想到的有以下两个办法:
1、不能删除的行右键的时候删除按钮只读
2、如果第一种方式不好实现,那就在用户点击删除的时候判断这行是否允许删除,如果允许才执行删除动作,如果不允许就不删除。
不知道以上两种方式有没有能实现的?

最佳答案

查看完整内容

您好,请参考附件,在选择的单元格的行数索引大于5时右键菜单中的删除将被disable。

7 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 09:09:32
来自 4#
您好,请参考附件,在选择的单元格的行数索引大于5时右键菜单中的删除将被disable。

testDemo.zip

1.46 KB, 下载次数: 494

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 12:00:38
2#
您好,可以通过重写右键菜单来实现:

  1. let oldOpenMenu = spread.contextMenu.onOpenMenu;
  2. spread.contextMenu.onOpenMenu = function (
  3.   menuData,
  4.   itemsDataForShown,
  5.   hitInfo,
  6.   spread
  7. ) {
  8.   oldOpenMenu.apply(this, arguments);
  9.   console.log(itemsDataForShown);
  10.   let { row, col } = hitInfo.worksheetHitInfo;
  11.   if (row > 5) {
  12.     for (const element of itemsDataForShown) {
  13.       const item = element;
  14.       if (item.name == "deleteDialog" || item.name == "gc.spread.contextMenu.deleteRows") {
  15.         item.disable = true;
  16.       }
  17.     }
  18.   }
  19. };
复制代码
回复 使用道具 举报
chou19870206
初级会员   /  发表于:2024-6-5 14:08:43
3#
Joestar.Xu 发表于 2024-6-5 12:00
您好,可以通过重写右键菜单来实现:

不好意思,没太看懂怎么用的,可否提供一个完整的示例呢
回复 使用道具 举报
chou19870206
初级会员   /  发表于:2024-6-5 16:53:45
5#
Joestar.Xu 发表于 2024-6-5 16:17
您好,请参考附件,在选择的单元格的行数索引大于5时右键菜单中的删除将被disable。

不好意思,我放到我代码里好像没效果,我的是13版本,有关系吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 17:32:07
6#
您好,请您提供一下V13的具体版本号,这边调研一下看看是否有相关方案。
回复 使用道具 举报
chou19870206
初级会员   /  发表于:2024-6-5 18:30:21
7#
没事了,通过别的帖子找到了解决方案,谢谢!
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-6 08:55:01
8#
好的,那就先结贴了,后续有其他问题的话随时开新帖提问哈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部