找回密码
 立即注册

QQ登录

只需一步,快速开始

表白心迹

注册会员

7

主题

47

帖子

162

积分

注册会员

积分
162
表白心迹
注册会员   /  发表于:2023-6-27 18:06  /   查看:1509  /  回复:7
8金币
某一列设置了格式化'0%'
现在需要设置这列单元格数字不超过 100%
有没有什么方法?谢谢了

最佳答案

查看完整内容

您发帖的板块是C1产品,是一个.NET产品。和spreadjs完全不同。下次发帖请发到spreadjs板块,否则给你提供的方案也是完全无效的。,这个帖子我先给你移动过去了 spreadjs本身有提供数据验证功能,添加一个NumberValidator即可,可以设置最大最小值。 你可以参考这个demo https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/data-validation/basic-data-validator/purejs 这里也有参考代码 https://d ...

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-27 18:06:12
来自 6#
您发帖的板块是C1产品,是一个.NET产品。和spreadjs完全不同。下次发帖请发到spreadjs板块,否则给你提供的方案也是完全无效的。,这个帖子我先给你移动过去了

spreadjs本身有提供数据验证功能,添加一个NumberValidator即可,可以设置最大最小值。
你可以参考这个demo
https://demo.grapecity.com.cn/sp ... ta-validator/purejs

这里也有参考代码
https://demo.grapecity.com.cn/sp ... eatenumbervalidator
  1. spread.options.highlightInvalidData = true;
  2. var dv = GC.Spread.Sheets.DataValidation.createNumberValidator(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between, "5", "20", true);
  3. dv.showInputMessage(true);
  4. dv.inputMessage("Value must be between 5 and 20.");
  5. dv.inputTitle("tip");
  6. activeSheet.setDataValidator(1, 1, 1,1,dv,GC.Spread.Sheets.SheetArea.viewport);
复制代码





回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-27 18:41:04
2#
我不知道你用的是那个组件,假设是用的flexgrid组件,   格式化肯定没有限制值的输入,你可以设置数据验证,或者掩码之类,或者自定义编辑器,都可以限制用户只能输入小于1的数字。
回复 使用道具 举报
表白心迹
注册会员   /  发表于:2023-6-27 18:45:07
3#
Richard.Ma 发表于 2023-6-27 18:41
我不知道你用的是那个组件,假设是用的flexgrid组件,   格式化肯定没有限制值的输入,你可以设置数据验证 ...

数据验证或自定义编辑器有相关demo可供参考么
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-28 11:56:55
4#
自定义编辑器很简单,就是给列设置一个编辑器就行,(比如一个textbox),你只要控制编辑器输入的值就可以
比如最简单的,你可以给一个NumericUpDown作为编辑器,就能控制
            c1FlexGrid3.Cols[4].Editor = new NumericUpDown() {Maximum=10,Minimum=5 };




数据验证参考
https://www.grapecity.com/compon ... rid/validation.html
回复 使用道具 举报
表白心迹
注册会员   /  发表于:2023-6-28 13:59:41
5#
Richard.Ma 发表于 2023-6-28 11:56
自定义编辑器很简单,就是给列设置一个编辑器就行,(比如一个textbox),你只要控制编辑器输入的值就可以
...

用的不是flexgrid组件,就是spreadJS通过sheet.setFormatter(r, 4, '0%')行循环设置列百分比显示,然后要控制单元格数字不超过1
回复 使用道具 举报
表白心迹
注册会员   /  发表于:2023-6-30 09:57:43
7#
Richard.Ma 发表于 2023-6-28 14:29
您发帖的板块是C1产品,是一个.NET产品。和spreadjs完全不同。下次发帖请发到spreadjs板块,否则给你提供的 ...

好的,多谢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-30 10:33:34
8#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部