1ds 发表于 2024-12-27 10:26:45

14.2 SpreadJS数据和样式分离

本帖最后由 Joestar.Xu 于 2024-12-30 08:58 编辑

保存样式模板 我用的是JSON 格式的序列化与反序列化。回显时候我用 样式在之前 用了json现在报错并且这个样式不是模板里面的

请问这样如何做

大致是这样比如商品列表有3条数据   模板是不变的,修改也只是进行更改数据

Richard.Huang 发表于 2024-12-27 14:47:07

您好,对于您的问题,我来分别进行回答,首先是报错的问题,source变量需要在组件挂载后被正确初始化,才可以在整个组件的生命周期内访问它
export default {
data() {
    return {
      source: null, // 定义 source 为数据属性
    };
},
mounted() {
    this.source = new GC.Spread.Sheets.Bindings.CellBindingSource(); // 初始化 source
}
};

对于您的第二个问题,我理解您是期望这个表格模板是10行,然后您数据有3条,于是渲染成功后,您期望这个表格依然是10行,数据占其中三行而已。是吗?如果是的话,您需要对您的数据源做处理,保证一共10条数据,没有数据的地方用空字符串占位。如果您的场景和我描述的不一致,请重新描述您的需求,方便我理解和给出对应的方案

1ds 发表于 2024-12-27 14:59:11

Richard.Huang 发表于 2024-12-27 14:47
您好,对于您的问题,我来分别进行回答,首先是报错的问题,source变量需要在组件挂载后被正确初始化,才可 ...

我现在使用遍历重新赋值然后再fromjson,也是实现了

Richard.Huang 发表于 2024-12-27 16:57:39

1ds 发表于 2024-12-27 14:59
我现在使用遍历重新赋值然后再fromjson,也是实现了

您说的“遍历 重新赋值”,意思是直接操作对应的json内容吗?还是做的其他操作呢?一般情况下,像这种填报场景,数据绑定相对来说会更方便一些

1ds 发表于 2024-12-28 08:46:47

Richard.Huang 发表于 2024-12-27 16:57
您说的“遍历 重新赋值”,意思是直接操作对应的json内容吗?还是做的其他操作呢?一般情况下,像这种填 ...
相对来说就是遍历显示数据给tempdata    然后重新赋值content之后formjson

1ds 发表于 2024-12-28 13:57:11

下拉框是设置了这一列好像都有了红色框还没用到这个能做到用到再下拉吗

Richard.Huang 发表于 2024-12-31 08:56:17

1ds 发表于 2024-12-28 13:57
下拉框是设置了这一列好像都有了红色框还没用到这个能做到用到再下拉吗

您好,查看您的代码,您是通过修改序列化后的json文件后进行的后续逻辑操作,这在我们的产品中并不推荐,因为json是SpreadJS作为持久化的中间产物,只能保证您在序列化前和序列化后的内容是一致的,因此不推荐也不建议用户直接修改json内容,这可能会造成后续逻辑处理中的错误,例如您的报错。因此,建议您的所有操作都是在SpreadJS中做的

1ds 发表于 2024-12-31 09:08:10

Richard.Huang 发表于 2024-12-31 08:56
您好,查看您的代码,您是通过修改序列化后的json文件后进行的后续逻辑操作,这在我们的产品中并不推荐, ...

好的,那么我不修改json的话要怎么进行其他处理有连接吗

Richard.Huang 发表于 7 天前

1ds 发表于 2024-12-31 09:08
好的,那么我不修改json的话要怎么进行其他处理有连接吗

建议通过设置单元格类型api来解决该问题:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#setcelltype

其次,对于您表达的期望用到的时候再下拉,可以通过监听用户的行为给单元格设置单元格类型来解决该问题:
1. 选中单元格事件:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Events#selectionchanged
页: [1]
查看完整版本: 14.2 SpreadJS数据和样式分离