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

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

猜你喜欢

你们的国庆假期是怎样安排的 8天长假高速免费(说说你的国庆假期)

2025年国庆节和中秋节的放假调休时间已经确定。根据国务院办公厅的通知,具体安排为10月1日至8日放假调休,共8天。9月28日(周日)和10月11日(周六)需要上班。中秋和国庆假期期间,全国收费公路将对小型客车实行免费通行

你们的国庆假期是怎样安排的 8天长假高速免费(说说你的国庆假期)

小红书流量卡100元性价比,小红书流量卡100G全国通用(小红书流量卡大白可靠吗安全吗)

•多看“最新”笔记:小红书搜索框输入“流量卡100”后,记得点击“最新”排序,这样才能看到最新发布的套餐信息和用户反馈,避免参考过时的信息。•利用搜索发现功能:小红书搜索框会根据你的历史搜索推荐相关长尾词,…

小红书流量卡100元性价比,小红书流量卡100G全国通用(小红书流量卡大白可靠吗安全吗)

益气聪明丸主要含哪些成分及功效是什么(益气聪明丸的副作用是什么)

益气聪明丸是一种传统中药制剂,其主要成分为黄芪、党参、葛根、升麻、蔓荆子、白芍、黄柏(炒)以及甘草(炙),辅料是蜂蜜。该药具有益气升阳的作用,适用于治疗耳聋耳鸣,视物昏花等症状。益气聪明丸的服用方法是:口服。

益气聪明丸主要含哪些成分及功效是什么(益气聪明丸的副作用是什么)

连续十三年主持春晚,被观众称“国泰民安脸”的董卿,今销声匿迹(十三年之久)

她曾是春晚舞台的"定海神针",一张"国泰民安脸"霸屏十三年,却在巅峰时期突然消失。谁能想到,这位把爱国挂在嘴边的金牌🥇主持人,不仅被曝插足豪门婚姻,还悄悄给孩子办了美国护

连续十三年主持春晚,被观众称“国泰民安脸”的董卿,今销声匿迹(十三年之久)

数学差可能是一种病 医学诊断揭示真相(数学差是为什么)

上海儿童医学中心新设的“空间与数学学习困难门诊”四周号源迅速预约一空。首诊医生马希权发现,约三分之一的就诊儿童存在典型的数学障碍特征

数学差可能是一种病 医学诊断揭示真相(数学差是为什么)