找回密码
 立即注册

QQ登录

只需一步,快速开始

jin.ye

金牌服务用户

92

主题

197

帖子

765

积分

金牌服务用户

积分
765
jin.ye
金牌服务用户   /  发表于:2023-5-25 09:14  /   查看:1857  /  回复:10
1金币
本帖最后由 JoestarXu 于 2023-5-25 09:58 编辑


代码修改单元格值的时候,如何才能使得上面这块区域能及时刷新呢

image.png878878478.png

10 个回复

倒序浏览
JoestarXu
超级版主   /  发表于:2023-5-25 09:53:26
沙发
您好,问题已经在本地复现,这边调研一下,如果有后续进展我会在本帖下回复您。

本帖先做保留处理了。
回复 使用道具 举报
JoestarXu
超级版主   /  发表于:2023-5-25 16:24:03
板凳
您好,请参考以下代码:

  1. var ftb = GC.Spread.Sheets.FormulaTextBox.findControl(document.getElementsByClassName("formula-bar-item formulaBarText")[0])
  2. ftb.refresh(true);
复制代码


API文档参考:https://www.grapecity.com/spread ... mulaTextBox#refresh
回复 使用道具 举报
jin.ye
金牌服务用户   /  发表于:2023-6-1 14:34:42
地板
JoestarXu 发表于 2023-5-25 16:24
您好,请参考以下代码:



还有一个问题,代码修改单元格值的时候,如何才能使 【撤销】、【恢复】 能够正常使用

image.png559895934.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-1 14:38:30
5#
本帖最后由 Joestar.Xu 于 2023-6-1 14:40 编辑

您好,这个是我们的产品设计,其目的是为了区分代码操作还是UI操作。

正常来说代码操作属于初始设置所以不能够被撤销。

但是如果您实际业务场景中需要这样的需求,可以考虑将相关代码操作封装成一个command,然后调用command,这样做该command就可以被撤销了。

具体API可参考:

https://demo.grapecity.com.cn/sp ... andManager#register


https://demo.grapecity.com.cn/sp ... mandManager#execute
回复 使用道具 举报
jin.ye
金牌服务用户   /  发表于:2023-6-2 11:32:05
6#
Joestar.Xu 发表于 2023-6-1 14:38
您好,这个是我们的产品设计,其目的是为了区分代码操作还是UI操作。

正常来说代码操作属于初始设置所以 ...

如下面代码所示,新增的菜单栏的按钮事件修改单元格的值,如何使用【撤销】、【恢复】


var ribbonFileCommands = {
    'setIdentifier_1': {
        canUndo: true,
        text: '^',
        title: '竖加正确',
        commandName: 'setIdentifier_1',
        execute: (context) => {
            var sheet = context.Spread.getActiveSheet();
            var row = sheet.getActiveRowIndex();
            var col = sheet.getActiveColumnIndex();
            var cell = sheet.getCell(row, col);
            if (cell.locked()) {
                bdoInfoBox('提示', '您试图更改的单元格或图表位于受保护的工作表中。不允许修改。');
                return;
            }
            cell.text('^').foreColor('red');
            var ftb = GC.Spread.Sheets.FormulaTextBox.findControl(document.getElementsByClassName("formula-bar-item formulaBarText")[0])
            ftb.refresh(true);
        }
    }
}
var designerConfig = GC.Spread.Sheets.Designer.DefaultConfig;
// 新增菜单栏
var bdoRibbon = {
    'id': 'bdo',
    'text': '立信',
    'buttonGroups': []
};
bdoRibbon.buttonGroups.push(ribbonFileConfigIdentifier);
designerConfig.commandMap = {};
Object.assign(designerConfig.commandMap, ribbonFileCommands);
designerConfig.ribbon.push(bdoRibbon);

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-2 11:40:09
7#
jin.ye 发表于 2023-6-2 11:32
如下面代码所示,新增的菜单栏的按钮事件修改单元格的值,如何使用【撤销】、【恢复】

您好,您提供的代码我这边跑不起来,看上去少了个东西。

image.png98612975.png
回复 使用道具 举报
jin.ye
金牌服务用户   /  发表于:2023-6-2 11:49:47
8#
Joestar.Xu 发表于 2023-6-2 11:40
您好,您提供的代码我这边跑不起来,看上去少了个东西。

https://demo.grapecity.com.cn/sp ... s.Designer.Designer


就是这种菜单按钮,如何做到修改单元格的值可以使用撤销、恢复

image.png409105834.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-2 11:54:01
9#
jin.ye 发表于 2023-6-2 11:49
https://demo.grapecity.com.cn/spreadjs/help/api/designer/classes/GC.Spread.Sheets.Designer.Designe ...

您好,想要做到撤销、恢复需要添加一个canUndo属性,并设置为true:

image.png215716246.png
回复 使用道具 举报
jin.ye
金牌服务用户   /  发表于:2023-6-2 12:13:01
10#
Joestar.Xu 发表于 2023-6-2 11:54
您好,想要做到撤销、恢复需要添加一个canUndo属性,并设置为true:



是这么设置canUndo的,无效


var ribbonFileCommands = {
    'setIdentifier_1': {
        canUndo: true,
        text: '^',
        title: '竖加正确',
        commandName: 'setIdentifier_1',
        execute: (context) => {
            var sheet = context.Spread.getActiveSheet();
            var row = sheet.getActiveRowIndex();
            var col = sheet.getActiveColumnIndex();
            var cell = sheet.getCell(row, col);
            if (cell.locked()) {
                bdoInfoBox('提示', '您试图更改的单元格或图表位于受保护的工作表中。不允许修改。');
                return;
            }
            cell.text('^').foreColor('red');
            var ftb = GC.Spread.Sheets.FormulaTextBox.findControl(document.getElementsByClassName("formula-bar-item formulaBarText")[0])
            ftb.refresh(true);
        }
    }
}
var ribbonFileConfigIdentifier = {
    'label': '审计标识符',
    'thumbnailClass': 'ribbon-thumbnail-spreadsettings-identifier',
    'commandGroup': {
        'children': [{
            'direction': 'vertical',
            'commands': ['setIdentifier_1']
        }]
        }
};
var designerConfig = GC.Spread.Sheets.Designer.DefaultConfig;
// 新增菜单栏
var bdoRibbon = {
    'id': 'bdo',
    'text': '立信',
    'buttonGroups': []
};
bdoRibbon.buttonGroups.push(ribbonFileConfigIdentifier);
designerConfig.commandMap = {};
Object.assign(designerConfig.commandMap, ribbonFileCommands);
designerConfig.ribbon.push(bdoRibbon);

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部