Wijmo5表格分组折叠收缩
参照文档的示例,通过groupDescriptions设置三层分组,如何让初次加载时,数据全部先折叠收缩起来,类似这样?
有一个collapseGroupsToLevel方法,可以按照层级折叠,0是全部折叠
theGrid.collapseGroupsToLevel(0) 我这样设置了,发现没有变化
和我分组的配置有关系吗
这是一个方法,显然没法这么用,只能grid初始化后来代码执行
:lol这样写,成功啦,第一次会全部折叠
但我刷新下页面又展开了,感觉是不是因为我的itemsSource的数据源是websocket传输的实时数据,不断变化,导致了MultiRow的自动更新渲染,wijmo有什么方法可以让itemsSource变化时,只动态改变单元格的数据,不重新渲染整个表格,我现在的表格拉长某列宽度时会立刻还原,点击某个单元格,选中的项会立刻回到顶部,感觉都是表格不断更新造成的。
上次您发的动态更新的例子,我不知道如何更改我这边的逻辑,我这边的数据源websocket每500ms就会全量更新下,我怎么能让MultiRow不跟着数据源的变化而反复渲染,可以考虑用immutable数据结构来存储吗?这里困扰了我好久,希望版主给个思路:loveliness: 理论上来说,更新数据源(不是重新设置数据)并不会引起你说的问题。
你可以上传一个简单的demo上来看看 // 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表格的重新渲染
// 导致现在表格拉长某列宽度会立刻还原;点击某个单元格,选中的项会立刻回到顶部;选择某列隐藏后立刻又还原
正常来说你应该是去操作(新增行,删除行,修改·······),我不知道你上面的setItemsSource是怎样操作的
页:
[1]