找回密码
 立即注册

QQ登录

只需一步,快速开始

mtkj
金牌服务用户   /  发表于:2020-8-15 17:52  /   查看:5008  /  回复:5
1金币
本帖最后由 mtkj 于 2020-8-15 17:53 编辑


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,这里的问题已重现,原因在于这两句: 这里将整个数据源替换后,再刷新视图,因此没办法保证定位准确。 解决办法:调用collectionView原生的removeAt方法实现:

5 个回复

倒序浏览
最佳答案
最佳答案
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-8-15 17:52:14
来自 6#
本帖最后由 KevinChen 于 2020-8-19 08:55 编辑

您好,这里的问题已重现,原因在于这两句:

  1. theGrid.itemsSource=new wjCore.collections.CollectionView(items2);
  2. theGrid.collectionView.refresh();
复制代码


这里将整个数据源替换后,再刷新视图,因此没办法保证定位准确。

解决办法:调用collectionView原生的removeAt方法实现:

  1. var items2 = theGrid.itemsSource.items;
  2. for(var i=items2.length-1; i>0; i--){
  3.         if(items2[i].check){
  4.                 theGrid.itemsSource.removeAt(i)
  5.         }
  6. }
复制代码


回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-8-17 10:15:25
2#
您好,可以判断。事件的第二个参数“e”,可以拿到触发事件的key,如图:



因此,只需在这里加个判断即可:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
mtkj
金牌服务用户   /  发表于:2020-8-17 10:59:29
3#
本帖最后由 mtkj 于 2020-8-17 11:04 编辑

我这个在按钮删除时,需要通过值来判断是否可以删除,比如我有个隐藏值,如果为true,就不能删除,否则就可以删除,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-8-17 13:33:09
4#
你好,deletingRow第二个参数,图中的s有个cancel属性,如果给cancel赋值为true就可以阻止删除行为:

s.cancel = true;
回复 使用道具 举报
mtkj
金牌服务用户   /  发表于:2020-8-17 16:48:13
5#
按delete删除行,为啥会自动跑到最底下一行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

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