找回密码
 立即注册

QQ登录

只需一步,快速开始

BND

高级会员

170

主题

526

帖子

1826

积分

高级会员

积分
1826
BND
高级会员   /  发表于:2022-7-14 11:50  /   查看:3012  /  回复:14
1金币
企业微信截图_16577706103384.png279313353.png

14 个回复

正序浏览
BND
高级会员   /  发表于:2022-7-15 11:55:47
14#
Derrick.Jiao 发表于 2022-7-15 11:07
请问是直接用我提供的html测试的吗?如果是直接用我提供的文件操作的,建议提供对应的操作步骤或者录制对 ...

第一次点击单元格回跳回开始菜单,然后单选只能改A1B2C3对应的斜行,第一次框选改的有效果,第二次框选就无效
回复 使用道具 举报
BND
高级会员   /  发表于:2022-7-15 11:52:28
13#
Derrick.Jiao 发表于 2022-7-15 11:07
请问是直接用我提供的html测试的吗?如果是直接用我提供的文件操作的,建议提供对应的操作步骤或者录制对 ...

是从你发的html打开的,我发的wmv你可以看吗?

Video_2022-07-15_114757.wmv

721.53 KB, 下载次数: 93

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-7-15 11:07:25
12#
BND 发表于 2022-7-15 10:04
为什么我用你发的页面第一次框选可以更改,第二次框就不行了,还有只能改A1B2C3这一斜条的单元格

请问是直接用我提供的html测试的吗?如果是直接用我提供的文件操作的,建议提供对应的操作步骤或者录制对应的步骤,这边来做进一步尝试。
我这边在我的环境中测试是正常的,测试步骤在下面的gif中。
new.gif



回复 使用道具 举报
BND
高级会员   /  发表于:2022-7-15 10:04:28
11#
本帖最后由 BND 于 2022-7-15 10:22 编辑
Derrick.Jiao 发表于 2022-7-15 09:23
这是我替换上述代码的操作以及demo,也都是正常的。另外,也注意到帖子上用的是15.0.2,建议升级到目前最 ...

为什么我用你发的页面第一次框选可以更改,第二次框就不行了,还有只能改A1B2C3这一斜条的单元格
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-7-15 09:23:30
10#
BND 发表于 2022-7-14 18:28
var w = {
            "Welcome": {
                title: "Welcome",

这是我替换上述代码的操作以及demo,也都是正常的。另外,也注意到帖子上用的是15.0.2,建议升级到目前最新的15.1.3后尝试,有可能是旧版本的bug。
lock.gif

新增ribbon和按钮.html

6.35 KB, 下载次数: 99

回复 使用道具 举报
ann悬赏达人认证
初级会员   /  发表于:2022-7-15 09:19:18
9#
execute函数的执行结果如上,逻辑正常。应该是更新后的内容没有回写进您的上下文对象context中。如果要完全复现问题,需要提供完整的代码哈
回复 使用道具 举报
ann悬赏达人认证
初级会员   /  发表于:2022-7-15 09:15:49
8#
您好:因为您的execute函数中带有上下文信息context。上面的代码我们这边不好复现,我这边更新了一下代码执行结果如图所示。我理解您是想在execute中修改单元格的锁定状态,然后通过getState获取修改后的状态。尝试下在execute中将更新后的表单重新set回context对象,然后在getState函数中再获取试试呢

image.png938638610.png
image.png451040648.png
回复 使用道具 举报
BND
高级会员   /  发表于:2022-7-14 18:28:45
7#
Derrick.Jiao 发表于 2022-7-14 18:19
我这边测试是没问题的,这是我测试的demo。

var w = {
            "Welcome": {
                title: "Welcome",
                text: "Welcome",
                type: "checkbox",

                commandName: "Welcome",
                execute: async (context, propertyName, fontItalicChecked) => {
                    debugger
                    var spread = context.getWorkbook();
                    var sheet = spread.getActiveSheet();
                    console.log(sheet.getSelections())
                    let selections = sheet.getSelections()[0];
                    for (let i = selections.col; i < selections.colCount + selections.col; i++) {
                        for (let j = selections.row; j < selections.rowCount + selections.row; j++) {
                            if (sheet.getCell(i, j).locked()) {
                                sheet.getCell(i, j).locked(false);

                            } else {
                                sheet.getCell(i, j).locked(true);
                            }

                        }
                    }

                },
                getState: (context) => {
                    let sheet = context.Spread.getActiveSheet(); //设置 checkBox 初始状态            //return !sheet.isPrintLineVisible();    //初始为选中状态
                    // console.log(sheet);
                    // console.log(context);
                    // console.log(
                    //   sheet
                    //     .getCell(sheet.getActiveRowIndex(), sheet.getActiveColumnIndex())
                    //     .locked()
                    // );
                    return context.Spread.getActiveSheet()
                        .getCell(sheet.getActiveRowIndex(), sheet.getActiveColumnIndex())
                        .locked(); //初始为未选中状态
                },
            }
        }



改成我这样就复现问题了,这种怎么解决,只有A1能切换
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-7-14 18:19:48
6#
BND 发表于 2022-7-14 17:58
我知道,我可以直接看到是否锁定,这个我也解决了确实是if else的问题,但是改完之后会只有A1一格生效, ...

我这边测试是没问题的,这是我测试的demo。

新增ribbon和按钮.html

5.96 KB, 下载次数: 118

回复 使用道具 举报
BND
高级会员   /  发表于:2022-7-14 17:58:35
5#
Derrick.Jiao 发表于 2022-7-14 17:41
走到最后一句代码的时候已经设为false的单元格又重新变为true了。

我知道,我可以直接看到是否锁定,这个我也解决了确实是if else的问题,但是改完之后会只有A1一格生效,这是为什么?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部