spreadjs v17 数据源字段如何清空
本帖最后由 Joestar.Xu 于 2024-10-9 15:44 编辑调研编号:SJS-26701
目前后端接口已经没有返回这些字段了 ,但是数据源中依然存在,
目前都是先删除数据源再重新添加 字段才是最新请求的, 有什么办法能够实时显示接口返回的字段
了解了,请参考这段新代码来实现:
let schemaColumns =
spread.dataManager().tables["表1"].options.schema.columns;
let columns = spread.dataManager().tables["表1"].columns;
let map = {};
for (const key in schemaColumns) {
if (schemaColumns.dataName) {
map.dataName] = key;
}
}
spread.dataManager().tables["表1"].columns = null;
spread.dataManager().tables["表1"].options.schema.columns = null;
spread
.dataManager()
.tables["表1"].fetch(true)
.then(() => {
let option = spread.dataManager().tables["表1"].options;
for (const key in map) {
let ifSet = false;
if (spread.dataManager().tables["表1"].columns) {
ifSet = true;
}
delete option.schema.columns;
delete spread.dataManager().tables["表1"].columns;
if (ifSet) {
option.schema.columns] = schemaColumns];
spread.dataManager().tables["表1"].columns] =
columns];
}
}
designer.refresh();
}); 您好,可以使用fetch接口来刷新table的数据,具体请参考:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Data.Table#fetch 不好意思 没说清楚 您提供的是集算表的刷新 我需要的是reprotSheet的 您好,ReportSheet和TableSheet(集算表)使用的都是DataManager中的Table作为数据源。 如何使用这个方法
这是js? 想通过前端实现实时刷新字段 目前缓存太重了 后端没有返回的字段还依然存在在数据源中 简单来说需要遍历每个Table去执行fetch接口,在此之前要先获取到spread对象和DataManager来获取所有的Table对象。具体可以参考下图:
本帖最后由 sunqinhui 于 2024-9-29 12:07 编辑
获取是空的 提供js demo 如果获取tables为空,说明你的spread对象中没有任何数据表。
基于目前的情况我有两点猜测:
要么是导入的spread对象本身不包含任何数据表。
要么是代码的执行顺序有问题,需要在导入后再执行。 本帖最后由 sunqinhui 于 2024-9-29 14:52 编辑
有好几个数据源呢spread对象是不上面那样获取的你那边是怎么获取spread对象的 而且这边已把代码删光了 还是获取到空的 已经提供demo了 麻烦看下代码