找回密码
 立即注册

QQ登录

只需一步,快速开始

Gangz

注册会员

3

主题

7

帖子

30

积分

注册会员

积分
30
  • 110

    金币

  • 3

    主题

  • 7

    帖子

Gangz
注册会员   /  发表于:2022-12-19 16:38  /   查看:2161  /  回复:5

场景:画面左右用了两个Grid。右边Grid的数据,是通过左边Grid选中的主键来调用Filter方法筛选出来的(主表和子表)。

因为右边的Grid可以追加新的数据,客户希望右边追加的数据没有把项目填满的时候,左边的Grid,选中状态不能改变。(不能切换数据)

现在左边的Grid,可以编辑,可以追加行,也可以排序。(行追加功能是写了一个按钮调用addnew方法实现的)

现在发现追加行,Grid会把选中状态自动移动到新的行里。我尝试用selectionChanging写逻辑,然后执行e.cancel=true去解决,但是如果点了排序键(升序)以后再追加行,选择项目就又回到新追加的行了。

有什么好的方法可以保持操作数据视图,选中状态不变么?

※现在的SelectionMode是CellRange

5 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-19 21:48:48
沙发
建议发一个重现问题的demo上来,我来协助验证一下
回复 使用道具 举报
Gangz
注册会员   /  发表于:2023-1-4 18:25:31
板凳
Richard.Ma 发表于 2022-12-19 21:48
建议发一个重现问题的demo上来,我来协助验证一下

不好意思,代码在内网 带不出来。
已经换了一种实现方式解决了。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-1-4 18:32:16
地板
好的,问题解决就行
回复 使用道具 举报
nidada
注册会员   /  发表于:4 天前
5#
Gangz 发表于 2023-1-4 18:25
不好意思,代码在内网 带不出来。
已经换了一种实现方式解决了。

请问你怎么解决的啊?每次数据更新后都会默认选中第一行,想保持之前的选中状态
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:4 天前
6#
选中的行可以直接通过grid.collectionView.currentItem来获取或者设置

所以你只要重设数据源前获取到item,设置数据源后,再设置为相同的item即可

比如设置为第四项
  1. theGrid.collectionView.currentItem=theGrid.collectionView.items[3]
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部