找回密码
 立即注册

QQ登录

只需一步,快速开始

大Vi

中级会员

143

主题

316

帖子

995

积分

中级会员

积分
995
大Vi
中级会员   /  发表于:2022-8-5 15:30  /   查看:1334  /  回复:6
1金币
本帖最后由 Lynn.Dou 于 2022-8-10 11:40 编辑

初始页面这样的:
image.png737937621.png
然后点击第二行新增一行数据:
  1. const activeRowIndex = sheet?.getActiveRowIndex() ?? 0;
  2.         sheet?.addRows(activeRowIndex + 1, 1);
复制代码


image.png545786742.png
1、怎么就那个展开折叠位置就变了呢?2、怎么给addRows的那一行数据赋值呢(既需要赋值表字段的数据,也需要赋值一些不在表里的数据比如time,level这种)?
image.png97857665.png
image.png362246398.png

最佳答案

查看完整内容

点击你的新增按钮后,获取activeRowIndex[/backcolor]。 待用户填完数据后,获取sheet.getDataSource()数据,发现比之前多了一项,此时找第activeRowIndex+1[/backcolor]项,会发现用户填充之后的数据是有值的,但是tile,level是undeifined。此时可以给这些字段赋值。

6 个回复

倒序浏览
最佳答案
最佳答案
沉沉悬赏达人认证
金牌服务用户   /  发表于:2022-8-5 15:30:28
来自 6#
本帖最后由 沉沉 于 2022-8-8 14:24 编辑

点击你的新增按钮后,获取activeRowIndex
待用户填完数据后,获取sheet.getDataSource()数据,发现比之前多了一项,此时找第activeRowIndex+1项,会发现用户填充之后的数据是有值的,但是tile,level是undeifined。此时可以给这些字段赋值。
  1. function addRow() {
  2.     let sheet = spread.sheets[0];
  3.     activeRowIndex = sheet.getActiveRowIndex();
  4.     sheet.addRows(activeRowIndex + 1, 1);
  5. }

  6. function submit() {
  7.     let sheet = spread.sheets[0];
  8.     console.log(sheet.getDataSource(), activeRowIndex + 1)
  9.     let addItem = sheet.getDataSource()[activeRowIndex + 1];
  10.     addItem.time = '2022-08-08'
  11.     addItem.level = 2

  12.     console.log(sheet.getDataSource())//此时获取更改后的数据
  13. }
复制代码
image.png839209594.png

回复 使用道具 举报
沉沉悬赏达人认证
金牌服务用户   /  发表于:2022-8-5 17:33:06
2#
关于第二个问题,为什么想要在绑定数据源后,再新增一行,再添加数据呢?新增的一行是需要用户自己输入,还是绑定获取的数据,如果是绑定获取的数据,为什么不一开始的时候绑定呢?
表单绑定,如果想要绑定一些数据,但是不在sheet中显示,可以设置visible:false。如绑定数据源sheet.bindColumn( { name: 'position', displayName: 'Position', size: 50, visible: false });
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-5 18:02:02
3#
您好,
问题1已复现,已将此问题记录下来进一步调研,待有进展贴中回复您。
问题2如1楼所述,可以描述下您的需求,以便这边理解此问题。
回复 使用道具 举报
大Vi
中级会员   /  发表于:2022-8-5 18:19:11
4#
沉沉 发表于 2022-8-5 17:33
关于第二个问题,为什么想要在绑定数据源后,再新增一行,再添加数据呢?新增的一行是需要用户自己输入,还 ...

首先,数据源本身是树结构大框架,需要用户根据实际情况新增子节点,手填数据并保存到服务器,所以需要再绑定数据源后再次增删数据以更新数据,其次,绑定一些数据,但不在sheet种展示,像你说的那种方法,用户导出后,visible为false的也会被看见(不可见属性仅仅让宽度变得很小,但是用户是可以拖动显示出来,所以不适用),最后,想在添加子节点时赋值,是因为现在的spread仅仅可以赋列存在的值,但是有些字段是用来做一些判断操作的,所以也想要一起赋值。
回复 使用道具 举报
大Vi
中级会员   /  发表于:2022-8-5 18:19:18
5#
Lynn.Dou 发表于 2022-8-5 18:02
您好,
问题1已复现,已将此问题记录下来进一步调研,待有进展贴中回复您。
问题2如1楼所述,可以描述下 ...

首先,数据源本身是树结构大框架,需要用户根据实际情况新增子节点,手填数据并保存到服务器,所以需要再绑定数据源后再次增删数据以更新数据,其次,绑定一些数据,但不在sheet种展示,像你说的那种方法,用户导出后,visible为false的也会被看见(不可见属性仅仅让宽度变得很小,但是用户是可以拖动显示出来,所以不适用),最后,想在添加子节点时赋值,是因为现在的spread仅仅可以赋列存在的值,但是有些字段是用来做一些判断操作的,所以也想要一起赋值。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-8 18:05:18
7#
楼主可参考楼上回复,在填报数据后对未显示的字段赋值,再作为新的数据源进行后续处理。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部