找回密码
 立即注册

QQ登录

只需一步,快速开始

muyang1214

注册会员

3

主题

10

帖子

29

积分

注册会员

积分
29
最新发帖
muyang1214
注册会员   /  发表于:2023-5-10 10:12  /   查看:1635  /  回复:7
3金币
参照文档的示例,通过groupDescriptions设置三层分组,
如何让初次加载时,数据全部先折叠收缩起来,类似这样?






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

最佳答案

查看完整内容

有一个collapseGroupsToLevel方法,可以按照层级折叠,0是全部折叠

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-10 10:12:15
来自 2#
有一个collapseGroupsToLevel方法,可以按照层级折叠,0是全部折叠
  1.     theGrid.collapseGroupsToLevel(0)
复制代码
回复 使用道具 举报
muyang1214
注册会员   /  发表于:2023-5-11 09:37:15
3#
我这样设置了,发现没有变化

和我分组的配置有关系吗

本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-11 11:11:04
4#
这是一个方法,显然没法这么用,只能grid初始化后来代码执行
回复 使用道具 举报
muyang1214
注册会员   /  发表于:2023-5-11 15:34:00
5#

这样写,成功啦,第一次会全部折叠

但我刷新下页面又展开了,感觉是不是因为我的itemsSource的数据源是websocket传输的实时数据,不断变化,导致了MultiRow的自动更新渲染,wijmo有什么方法可以让itemsSource变化时,只动态改变单元格的数据,不重新渲染整个表格,我现在的表格拉长某列宽度时会立刻还原,点击某个单元格,选中的项会立刻回到顶部,感觉都是表格不断更新造成的。
上次您发的动态更新的例子,我不知道如何更改我这边的逻辑,我这边的数据源websocket每500ms就会全量更新下,我怎么能让MultiRow不跟着数据源的变化而反复渲染,可以考虑用immutable数据结构来存储吗?这里困扰了我好久,希望版主给个思路

本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-11 18:29:38
6#
理论上来说,更新数据源(不是重新设置数据)并不会引起你说的问题。
你可以上传一个简单的demo上来看看
回复 使用道具 举报
muyang1214
注册会员   /  发表于:2023-5-12 09:04:02
7#
// data数据就是websocket实时传输的数据,每500ms全量更新次
const data = useSelector((state) => state.websocket.data);
useEffect(() => {
    if (data) {
      setItemsSource(data);
    }
  }, [data]);

// 对数据做下处理,并分组
const tableData = new CollectionView(handleInitialData(itemsSource),
    {
      groupDescriptions: ["ExchangeID", "ObjectCode", "DateCode"],
      sortDescriptions: ["ExchangeID", "ObjectCode", "DateCode"],
    })

// 表格渲染

<MultiRow
     style={{ height: "100vh", width: "100%" }}
     itemsSource={tableData}
     groupHeaderFormat={'<b>{value}</b>:{count:n0} 条'}
     layoutDefinition={[...]}






/>


// 我当下的代码逻辑是这样,不知道为什么tableData的变化会引起MultiRow表格的重新渲染
// 导致现在表格拉长某列宽度会立刻还原;点击某个单元格,选中的项会立刻回到顶部;选择某列隐藏后立刻又还原







回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-12 18:14:40
8#
正常来说你应该是去操作(新增行,删除行,修改·······),我不知道你上面的setItemsSource是怎样操作的

本帖子中包含更多资源

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

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