找回密码
 立即注册

QQ登录

只需一步,快速开始

turboming

注册会员

16

主题

57

帖子

179

积分

注册会员

积分
179
turboming
注册会员   /  发表于:2019-12-17 18:16  /   查看:5761  /  回复:14
请问如果spread中某一列的cellType是gcNumber
想要实现
1.控件入力时最大可以入力3位
2.控件读出db值如果是4位(或者是画面初期往里赋一个4位值)时4位全部显示
可以实现吗

14 个回复

倒序浏览
turboming
注册会员   /  发表于:2019-12-18 09:51:43
沙发
帮帮忙
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-12-18 12:28:46
板凳
您好,您的意思是不是用户只能输入三位,比如123,但是显示0123,获取数据时候还是0123?
这样的话可以用format,获取数据时候获取text不要获取value
回复 使用道具 举报
turboming
注册会员   /  发表于:2019-12-18 15:09:50
地板
本帖最后由 turboming 于 2019-12-18 15:26 编辑
dexteryao 发表于 2019-12-18 12:28
您好,您的意思是不是用户只能输入三位,比如123,但是显示0123,获取数据时候还是0123?
这样的话可以用f ...

您好,想问一下入力时只能输入三位是用什么属性控制的。我目前是用MaxValue=999控制的,还设定了一个MaxMinBehavior = restore这个属性,觉得就是这两个属性导致的没有显示出4位值。我也试过把MaxMinBehavior改成keep这样是能读出4位值了,但是入力只能入3位控制不了了。还有别的属性可以控制入力位数吗 。我想实现的是入力只能入三位,但是数据库里可能存4位值,比如1234画面加载时也可以显示出1234,或者写代码往单元格赋值1234时,也可以赋进去。
回复 使用道具 举报
turboming
注册会员   /  发表于:2019-12-19 18:31:45
5#
来人
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-12-20 09:00:52
6#
您好,这种行为现在用gcNumber是做不到的,前后是矛盾的。如果可以显示1234,那当用户进入编辑状态后,在编辑框中是否显示1234,显示后退出编辑状态1234是否能保留提交。
默认控件行为暂时还做不到。
回复 使用道具 举报
turboming
注册会员   /  发表于:2019-12-21 10:22:49
7#
dexteryao 发表于 2019-12-20 09:00
您好,这种行为现在用gcNumber是做不到的,前后是矛盾的。如果可以显示1234,那当用户进入编辑状态后,在编 ...

如果可以显示1234,当用户进入编辑状态后,在编辑框中显示0,显示后退出编辑状态1234保留提交。我现在做的是一个升级项目,vb6的时候用默认cellType是number就实现了。vb6那边还有非编辑状态下按F2不删除。编辑状态下按F2删除。编辑状态有值时按删除键,默认是0,但是光标离开时显示空白。后面这些功能用gcNumber实现都特别容易,没想到在位数这出了问题
回复 使用道具 举报
turboming
注册会员   /  发表于:2019-12-23 10:25:25
8#
本帖最后由 turboming 于 2019-12-23 11:16 编辑
dexteryao 发表于 2019-12-20 09:00
您好,这种行为现在用gcNumber是做不到的,前后是矛盾的。如果可以显示1234,那当用户进入编辑状态后,在编 ...

您好,现在这边确定了celltype用Numbe了,请问有没有什么属性设定控件非编辑状态下是空,进入编辑状态后默认是0,离开还是空。但是如果编辑状态下输入0,离开就变成0。现在的解决办法是加了EditModeOn,EditModeOff,EditChange事件,不知道版主有没有什么更好的办法,直接改属性就可以实现
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-12-23 11:49:00
9#
您好,就是用EditModeOn,包括.GcNumber我也是在EditModeOn尝试修改control的一些行为,发现没办法完全满足您的需求,比如下面的代码,编辑状态修改maxvalue,但是没办法谁默认值为0.


        private void FpSpread1_EditModeOn(object sender, EventArgs e)
        {
           if(fpSpread1.EditingControl is GrapeCity.Win.Spread.InputMan.CellType.GcNumberEditingControl)
            {
                var control = fpSpread1.EditingControl as GrapeCity.Win.Spread.InputMan.CellType.GcNumberEditingControl;

                control.MaxValue = 999;
            }
        }
回复 使用道具 举报
turboming
注册会员   /  发表于:2019-12-23 13:02:16
10#
dexteryao 发表于 2019-12-23 11:49
您好,就是用EditModeOn,包括.GcNumber我也是在EditModeOn尝试修改control的一些行为,发现没办法完全满足 ...

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