原标题:纯前端表格控件SpreadJS 数据绑萣教程一:数据绑定介绍
SpreadJS 作为一个类Exceel控件有着和Excel基本类似的功能,但同时也有很多Excel没有的独有功能数据绑定就是其中最常用的功能之┅。下面文章将详细的介绍数据绑定的原理方式,操作以及扩展应用
首先,SpreadJS是一个纯前端控件本身不包含任何后端结构,所以无法矗接完成数据库绑定SpreadJS本身绑定的数据源就是用户传递到前端的一个json格式的DataSource。后端的业务逻辑用户可以自行去处理这样的好处是低耦合,前后端分离服务器端专门处理业务逻辑,前端只负责页面展示功能无论安全性还是规范性都更符合常见的开发习惯。
接下来数据綁定中,无论通过设计器还是通过代码都需要在SpreadJS中建立一个个跟数据源DataSource的映射关系。数据绑定是以工作表(Sheet)为单位的绑定一个sheet只能綁定一个数据源,但多个sheet可以绑定同一个数据源
之后,当设置好映射关系之后我们将前端接收到的数据源通过对应的接口进行填充吗,之后SpreadJS会根据映射关系自动的将相关联的数据展示到对应的位置
数据绑定本身是一个双向绑定,双向绑定顾名思义就是当用户更新了視图的内容 (绑定项在页面上面的相关单元格内容)之后,数据源也会同时发生变化利用这样的机制,我们可以很方便的获取用户页面仩修改之后的数据这样在一些在线填报的用户场景中,我们利用双向绑定就可以拿到用户填报之后的数据并将其进行存储。
SpreadJS提供三种數据绑定的方式:表单绑定单元格绑定,表格绑定
从字面上意思来看顾名思义单元格绑定就是一个单元格绑定数据源中的某个字段。這种方式在一些填报单据中比较常见
2、 表单绑定和表格绑定
表单绑定与表格绑定从字面上很容易混淆,他们之间的区别分为以下几个方媔:
表单指的是Excel中的Sheet也就是工作表:
表单绑定就是将数据源绑定在整个表单上,表单绑定数据源的行数决定了该sheet绑定完成之后初始的行數sheet没新增一行或者减少一行都会造成数据源的变化。
表格绑定会将数据源绑定在Sheet创建的table中数据源的行数决定了绑定完成后table的初始行数,而只有table行数的变更才会造成数据源的变化并不是整个sheet
由于之前所说的数据绑定中一个Sheet只能绑定一个数据源,所以表单绑定中数据源的烸一个字段都对应了表单的某一列所以数据源是一个JSON数组,像下面这样:
表格绑定因为一个sheet中可以存在多个table,每一个table都可以绑定数据源中的一个字段所以它对应的数据源是一个JSON对象,而对象的每一个字段将是一个JSON数组每一个字段对应绑定一个table,像下面这样:
本期我們讲述了数据绑定的原理以及三种绑定方式,后续将会继续为大家介绍数据绑定的更多内容
赋能开发者!葡萄城公司成立于 1980 年,是全浗领先的集开发工具、商业智能解决方案、管理系统设计工具于一身的软件和服务提供商西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。葡萄城的控件和软件产品在国内外屡获殊荣在全球被数十万家企业、学校和政府机构广泛应用。