找回密码
 立即注册

QQ登录

只需一步,快速开始

bingdaoice
中级会员   /  发表于:2020-9-29 10:55  /   查看:4516  /  回复:7
1金币
本帖最后由 bingdaoice 于 2020-9-29 10:57 编辑

请问使用Spread.NET如何做出此类SpreadJs的效果。
没啥头绪。
这个表格是添加DataTable数据后再动态添加列。
第二个分组是我可以勾选第一个分组的数据,选择不同的数据分到第二组。
不知道怎么做才能达到此类效果。有没有DEMO或示列。
image.png672799682.png

7 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-29 11:42:16
沙发
我看到里面其实是有两组表,这个可以将DataSource绑定到CellRange来完成
https://www.grapecity.com/spread ... databind-range.html

我不太确定你描述的内容,是说两个表是主子表的关系吗,需要可以点击主表的某行来加载对应的子表吗,如果是这个需求的话,可以尝试在事件里面对子表格所在的CellRange动态绑定对应数据源
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-9-29 13:50:19
板凳
本帖最后由 bingdaoice 于 2020-9-29 14:37 编辑

不好意思,我没表达清楚。我举个例子:DataTable中有10条数据。
1、将10条数据在Spread中显示出来。并将10条数据的列名显示出来。
2、勾选其中5条数据,选择另外的模板,将这5条数据从原来的10行中分离出来,重新建立一个分组,就像上面图一样2个分组。第二个分组的列名需要重新显示(与第一组的列名不一样,而且第二组列会增加。)
3、我如何获取列名?比如我第三行数据第二列的列名为“序号”,我如何获取“序号”这个列名?
4、可以在列上显示列名,但列的实际内容值为字段吗?如何设置?(就像DataGridView的列一样,列的HeaderText为序号,列的数据对应的字段DataPropertyName为Idx)


回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-29 15:48:59
地板
本帖最后由 Richard.Ma 于 2020-9-29 15:51 编辑

了解了,对于你的两个问题

3.如果是给Sheet绑定 DataSource,可以通过DataField来获取列名称
  1. fpSpread1.ActiveSheet.Columns[0].DataField
复制代码

4没有办法,列名就是字段名

回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-9-30 09:36:23
5#
我做的分组是这样的。请问分组如果显示字段名?像SpreadJs一样,可以分组显示不同的列名。并且选择不同的分组后,可以获取行对应分组的列的名称。(fpSpread1.ActiveSheet.Columns[0].DataField是可以获取列名,但是分组之后就获取不到了)
image.png628266601.png
image.png417837218.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-30 17:09:33
7#
SpreadJS和WinForms的分组机制不同,SpreadJS是基于outline的,存储结构没变化,直接获取单元格值。
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-10-9 13:56:08
8#
我想做到上面的那种,请问有WinForms的DEMO或示例吗?谢谢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-10-9 16:40:46
9#
Winforms控件暂时无法满足你的需求,在Winforms中,可以添加Table来展示类似的效果

具体路径为
C:\Program Files (x86)\GrapeCity\Spread.NET 13\Windows Forms\v13.45.20201.0\Samples\C#\Spread.Features\Spread.Table

image.png568264770.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部