找回密码
 立即注册

QQ登录

只需一步,快速开始

品茗-3

金牌服务用户

37

主题

95

帖子

344

积分

金牌服务用户

积分
344
品茗-3
金牌服务用户   /  发表于:2019-1-10 09:50  /   查看:8159  /  回复:13
使用原来的ExternalDialogs.CellTypeEditor(_spreadObject,(DesignerMain.CellTypeEnum)cellType);
不管点什么类型,都只能获取当前单元格类型编辑器,并需再次下拉选择所需类型,最新版本设计器实例里编辑器已可以定位
所需类型,但如何设置?如图数值类型设置组合框直接显示组合框,而不是数值。
11.gif

13 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-10 23:26:19
沙发
您好,我没有台明白你的需求,CellTypeEditor是直接弹出dialog,并且去当前选择单元格的type。我试了下v11的设计器确实一点箭头会直接弹出dialog,没有让你再选,但现在对于你项目的问题是什么。
回复 使用道具 举报
品茗-3
金牌服务用户   /  发表于:2019-1-11 14:20:18
板凳
本帖最后由 品茗-3 于 2019-1-11 14:27 编辑
dexteryao 发表于 2019-1-10 23:26
您好,我没有台明白你的需求,CellTypeEditor是直接弹出dialog,并且去当前选择单元格的type。我试了下v11 ...

如图,我之前通过11版本的接口:ExternalDialogs.CellTypeEditor(_spreadObject,(DesignerMain.CellTypeEnum)cellType);
每次打开设置单元格,都是本单元格的类型,如文本,需要重新再编辑器里选择;
12新版直接定位到为选择的单元格类型,怎么实现?我要的是12版直接定位的实现,但现在我调用ExternalDialogs.CellTypeEditor还是本单元格的类型,dll我都升级到12.45.20181.0版本了
11.gif

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-12 00:20:42
地板
不清楚你这个cellType是哪里来的,可以不传递这个,会根据单元格celltype取。
ExternalDialogs.CellTypeEditor(_spreadObject);
回复 使用道具 举报
品茗-3
金牌服务用户   /  发表于:2019-1-14 13:30:42
5#
本帖最后由 品茗-3 于 2019-1-14 13:40 编辑
dexteryao 发表于 2019-1-12 00:20
不清楚你这个cellType是哪里来的,可以不传递这个,会根据单元格celltype取。
ExternalDialogs.CellTypeE ...

有那么难理解吗?别去考虑我的celltype参数,本来就有这个接口,即默认值,有没有参数我这显示都一样
image.png349587401.png
我借鉴之前11版设计器,点击单元格,通过调用以下接口(cellType你可以不管,默认值):
public void CustomCellType(CellTypeEnum cellType)
{
       ExternalDialogs.CellTypeEditor(_spreadObject, (DesignerMain.CellTypeEnum)cellType);
}
显示如下图:
选中单元格(初始为文本类型) --> 点击单元格类型设置,选的是富文本(调用上面接口)
--> 跳出单元格类型设置界面(显示的是文本,富文本需要自己再下拉定位)
11.gif
显示如下图:
12版葡萄城设计器,如下图,选中单元格(初始为文本类型) --> 点击单元格类型设置,选的是富文本
--> 跳出单元格类型设置界面(显示的是富文本,已自动给我定位了,正确)
11.gif

我要的就是12版的效果(直接定位我的选择),dll我都升级到12.45.20181.0版本了,12版是不是调用的接口已经不是 ExternalDialogs.CellTypeEditor了?
要怎么实现?用到了什么接口或加了什么操作?,你理解了吗?我要的就是12版的效果




回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-14 14:09:23
6#
因为我重现不出来你的问题,不管用设计器还是直接写代码都重现不了,所以想知道你是具体怎么做的。 1.gif
回复 使用道具 举报
品茗-3
金牌服务用户   /  发表于:2019-1-14 14:14:59
7#
dexteryao 发表于 2019-1-14 14:09
因为我重现不出来你的问题,不管用设计器还是直接写代码都重现不了,所以想知道你是具体怎么做的。

都是了12版是正确的,用11版,我的代码是参考原先11版设计,升级到12版后选项还是11版的,不是12版
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-1-14 14:22:06
8#
品茗-3 发表于 2019-1-14 14:14
都是了12版是正确的,用11版,我的代码是参考原先11版设计,升级到12版后选项还是11版的,不是12版

动图是11版本也没有你说的问题。所以您要看下你那里代码的写法。
两种情况:
1. 单元格没有设置过cellptype,那么就需要CellTypeEditor的第二个参数来设置dialog打开时候的默认的类型
2. 单元格设置过celltype,那么就会用选中单元格的celltype

这两种情况我这边测试都没有问题,你需要检查下您_spreadObject和cellType传递的参数是否正确。
回复 使用道具 举报
品茗-3
金牌服务用户   /  发表于:2019-1-14 14:29:06
9#
本帖最后由 品茗-3 于 2019-1-14 14:32 编辑
dexteryao 发表于 2019-1-14 14:22
动图是11版本也没有你说的问题。所以您要看下你那里代码的写法。
两种情况:
1. 单元格没有设置过cellp ...

我就想知道,单元格现在是文本类型,点击富文本,怎么如12版直接跳出富文本的编辑界面。
12版,原先是无,你先操作设置成文本,确定,再设置这个单元格未富文本,他是直接定位到富文本
11版,原先是无,你先操作设置成文本,确定,再设置这个单元格未富文本,他定位到的还是文本
我要12版效果,怎么设
回复 使用道具 举报
品茗-3
金牌服务用户   /  发表于:2019-1-14 14:45:49
10#
本帖最后由 品茗-3 于 2019-1-14 14:53 编辑
dexteryao 发表于 2019-1-14 14:22
动图是11版本也没有你说的问题。所以您要看下你那里代码的写法。
两种情况:
1. 单元格没有设置过cellp ...

真无语了,你就告诉我,你们现在的接口实现设置单元格类型方法是不是我下面写的,还是有接口可以直接定位。
ICellType curCellType = _spreadObject.ActiveSheet.ActiveCell.CellType;
            _spreadObject.ActiveSheet.ActiveCell.CellType = null;
            if (!ExternalDialogs.CellTypeEditor(_spreadObject, (DesignerMain.CellTypeEnum)cellType))
         {
                _spreadObject.ActiveSheet.ActiveCell.CellType = curCellType;
            }
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部