【青鸟飞扬教育】SpreadJS 的 Table 手动新增数据后获取完整字段的方法(青鸟艺术培训)

在 SpreadJS 表格控件中,当 Table 数据绑定后,对 Table 插入行,新行内填充部分单元格。在 getDataSource () 返回值中,关于新增行的数据对象,仅有被填充单元格对应的字段。如何获取完整字段,不论对应单元格是否填充了数据。

数据绑定使用的数据是一个 JavaScript 对象,在代码运行期间,这个对象被创建后即存在于内存中。这也是为什么把文件导出时虽然携带了绑定的数据源,但是导入至新应用的 Workbook 中再调用 Worksheet:getDataSource() 得到的结果为 null 的原因。即在新应用运行时的内存空间中没有原本的数据源对象。

解决方法

回到问题背景,虽然新增行在 Table 区域内,但是没有数据,意味着这行数据在数据源对象中是一个各字段属性均不存在的空对象,如图 1 所示。 (图 1. 新行对应空数据对象)

紧接着,如果对新增行内的个别单元格写入数据,数据绑定功能的双向绑定特性将单元格值和相关字段对应起来,组成一个对象。对于没被填充数据的单元格,不做类似处理。因此,Worksheet:getDataSource () 获取到新增行中的数据对象仅包含被填充单元格对应的字段属性,如图 2 所示。 (图 2. 新行数据对象包含被填充字段属性)

那如何获取完整字段呢?即,无论填充了哪些字段,都能获取到这一行对应的完整字段。Worksheet:getDataSource () 应该是做不到了,因为接口并未提供可回调操作的参数,所以需要在接口外想办法了。

回顾下对 Table 执行数据绑定的准备工作,对 Table 列设置绑定路径,而每个列的绑定路径实际上对应为数据源中的一个字段,也就是说数据源模型可知。那么,在代码上下文中存储数据源模型为元数据,同时为每个字段设置数据类型和默认值,后面会用到。如图 3 所示,这个元数据定义了数据源对象的各个字段,名称分别为 a、b、c、d、e 和 f,为简单起见,定义类型均为 string,且默认值为空字符串。

(图 3. 数据源模型元数据)

在 Worksheet:getDataSource () 后,结合数据源模型元数据遍历每行单元格对应的数据对象,检查当前数据对象中是否包含元数据中的每项字段。对于未包含的字段项,在当前数据对象中扩充,并且根据元数据中该字段项的数据类型和默认值设置其值,如图 4 所示代码片段。由于数据源对象存在于内存空间中,因此这一修改动作会直接影响数据源对象状态。

(图 4. 数据对象默认值设置代码)

最终效果如下图所示:

特别声明:[【青鸟飞扬教育】SpreadJS 的 Table 手动新增数据后获取完整字段的方法(青鸟艺术培训)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

吉林省晋龙钢板桩租赁:拉森III型热扎冷弯钢板桩支护及租赁施工全方案服务商(吉林省晋龙钢板生产厂家)

以1000延米、深度8米的基坑为例:若采购拉森III型钢板桩,材料成本约240万元,加上运输、打设、拔除等费用,总成本超300万元;而选择吉林省晋龙钢板桩租赁的全包服务,费用可控制在180万元以内,且无需承担…

吉林省晋龙钢板桩租赁:拉森III型热扎冷弯钢板桩支护及租赁施工全方案服务商(吉林省晋龙钢板生产厂家)

这些“年货”可不能往包里装 返程避坑指南

春节团圆饭的余味还未散去,返程的行囊已悄然装满。在踏上归途之前,你可能会疑惑:没喝完的散装白酒、爱吃的自热螺蛳粉能否带上火车?下面这份指南或许能帮你避开一些麻烦。出发前,请务必再检查一遍行李,确保一切顺利。毕竟,平安顺利才是最重要的

这些“年货”可不能往包里装 返程避坑指南

邀请函丨 LET 2026 广州物流展:马力全开,智启千行百业高质量发展新征程(wha邀请函)

展会将同期举行预计50+场高端论坛与技术交流会,覆盖Al+物流、具身智能、『机器人』️、低空经济、智慧供应链、智能制造、新质生产力、高质量发展等前沿议题,邀请来自全球的院士、行业领袖与企业实战派,共同探讨物流与制…

邀请函丨 LET 2026 广州物流展:马力全开,智启千行百业高质量发展新征程(wha邀请函)

河北食品级氢气定制服务如何满足多样需求?(河北食品级氢气生产厂家)

有客户反馈,使用该公司定制的食品级氢气后,产品的质量和保鲜效果有了明显提升。公司气体产品年运销能力达8000万标方,业务量较大,能根据不同企业的需求,提供个性化定制方案,无论是小型企业还是大型企业都能得到较好…

河北食品级氢气定制服务如何满足多样需求?(河北食品级氢气生产厂家)

怎样才能去掉眼袋呢(怎样才能去掉眼角的斑)

去掉眼袋的方法包括调整作息、冷敷热敷、药物治疗、激光治疗和手术治疗。眼袋的形成可能与遗传、年龄增长、用眼过度、局部炎症或肾脏疾病等因素有关。 长期熬夜或睡眠不足会导致眼周血液循环不畅,加重眼袋

怎样才能去掉眼袋呢(怎样才能去掉眼角的斑)