请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

eyAndrew

金牌服务用户

83

主题

384

帖子

1105

积分

金牌服务用户

积分
1105
eyAndrew
金牌服务用户   /  发表于:2025-5-9 14:17  /   查看:47  /  回复:10
1金币
image.png702740173.png

image.png311549987.png

10 个回复

倒序浏览
eyAndrew
金牌服务用户   /  发表于:2025-5-9 15:13:04
沙发
再请教个问题, 通过上面代码生成了一个table,已经fetch到数据也bind了对应的普通table了,然后我想根据页面上一些查询参数,重新请求数据,上到对应的table内,怎么实现? 目前的做法,先移除掉原来的table, 然后在重新 addTable,把查询参数写到read的函数回调里,有没有更简单的做法
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2025-5-9 15:16:19
板凳
image.png443276061.png
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-5-9 17:56:01
地板
您好,
数据源面板显示禁用状态是因为您是通过自定义函数来配置远程请求,解决方式如下图学习指南所介绍,您可以实际验证下:
image.png989727783.png
相关链接:
https://demo.grapecity.com.cn/sp ... dle-requests/purejs
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-5-9 18:06:32
5#
本帖最后由 Lynn.Dou 于 2025-5-9 18:08 编辑
eyAndrew 发表于 2025-5-9 15:13
再请教个问题, 通过上面代码生成了一个table,已经fetch到数据也bind了对应的普通table了,然后我想根据页 ...

重新请求数据,指的是从服务端重新远程读取新的数据源,还是从已经被dataManager管理的数据源中获取新数据应用在table中(如不同列)呢?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-5-9 18:15:19
6#

search返回的数据是否可直接映射到table,需要进一步确认。
目前search方法的使用即如API所示,没有配置多个查询条件的接口。
https://demo.grapecity.com.cn/sp ... C.Data.Table#search

image.png563400573.png

回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2025-5-9 18:36:37
7#
Lynn.Dou 发表于 2025-5-9 18:06
重新请求数据,指的是从服务端重新远程读取新的数据源,还是从已经被dataManager管理的数据源中获取新数 ...

是从服务端请求接口获取最新的数据
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:5 天前
8#
image.png931961669.png 还有个问题, fetch后数据,和普通sheet上的table bind,上数后,保存sjs,重新打开,不执行fetch的话, table是没数据的,也就是说,fetch后的数据,不会存在table上,但是table会被扩展行数, 这个是正常的么? 不扩展的话,怎么做
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:5 天前
9#
eyAndrew 发表于 2025-5-12 11:54
还有个问题, fetch后数据,和普通sheet上的table bind,上数后,保存sjs,重新打开,不执行fetch的话, ta ...

您参考下附件的demo,通过重写 Table.options.remote方式,将修改后的数据源更新至table中。
  1. // 更新table数据
  2.                         let options = productTable.options;
  3.                         // options.data = fakeData
  4.                         options.remote = {
  5.                                 read: function () {
  6.                                         return Promise.resolve(fakeData);
  7.                                 },
  8.                                 batch: function (changes) {
  9.                                         console.log('class表的changes', changes)
  10.                                         // return Promise.resolve(changes.map(item => ({ succeed: false })));
  11.                                 }
  12.                         }
  13.                         productTable.options = options;
复制代码
操作步骤:
1、导入附件sjs文件
2、点击 数据绑定 按钮
3、点击 继续加数据 按钮,观察table数据变化

dataManager.zip

133.4 KB, 下载次数: 1

回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:5 天前
10#
Lynn.Dou 发表于 2025-5-12 12:36
您参考下附件的demo,通过重写 Table.options.remote方式,将修改后的数据源更新至table中。
操作步骤: ...

目前就是这样做的, 所以说, table.bind的数据,当保存sjs,当前table上的数据并不会保存到当前sjs里, 只是存的引用关系, 只有触发fetch请求拿到数据后,才能展示,对吧?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部