找回密码
 立即注册

QQ登录

只需一步,快速开始

john_my

注册会员

1

主题

2

帖子

9

积分

注册会员

积分
9
  • 29

    金币

  • 1

    主题

  • 2

    帖子

最新发帖
john_my
注册会员   /  发表于:2023-2-7 13:56  /   查看:2721  /  回复:4
1金币

以前用的是FlexGrid 2013版本,.Net Framework 4.0 版本的。这些代码是从原来的程序直接升级上来的。
现在改用.Net Framework 4.5.2版本2022v3版本。
这段代码使用Node的AddNode函数后,可以增加Node,但是Node对应的Row行的Index=0,并不会是在上一个Node行下加行的那一行。
请问一下新版的要如何处理?

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

最佳答案

查看完整内容

没有详细研究你这边通过删除行 来删除节点,不过我测试了一下直接通过删除所有子节点这种方式实际就可以了,这样逻辑也是比较清晰的

4 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-7 13:56:04
来自 3#
没有详细研究你这边通过删除行 来删除节点,不过我测试了一下直接通过删除所有子节点这种方式实际就可以了,这样逻辑也是比较清晰的

  1.                 else if (vs.GetCellCheck(e.Row,e.Col)== CheckEnum.Unchecked)
  2.                 {
  3.                     while(r.Node.Children > 0)
  4.                     {
  5.                         r.Node.FirstChild.RemoveNode();
  6.                     }
  7.                 }
复制代码
回复 使用道具 举报
john_my
注册会员   /  发表于:2023-2-7 15:23:28
2#
我测试出来,减行后再用AddNode去加,就会错。

附件是出错的示例。


                        if (vs.Rows[i].Node != null && vs.Rows[i].Node.Parent != null && vs.Rows[i].Node.Parent.Key == r.Node.Key)
                        {
                            vs.Rows.Remove(i);
                            i--;
                        }

出错就是这段。

但是这个写法在以前2013v1版本就是正常使用的。
如果这个方法不行,请告诉我一个减掉父节点Node下所有行的方法。

本帖子中包含更多资源

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

x
回复 使用道具 举报
John-Intramedia
注册会员   /  发表于:2023-2-8 10:30:52
4#
已经解决了。

以前通过RemoveNode()无法同时删行所以才使用Row.Remove

现在测试这样做OK。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-8 12:26:26
5#
嗯,那么看了就是新老版本确实是有变化。问题解决就行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部