数据绑定、脏数据和单引号前缀

本周,让我们一起来学习SpreadJS 的数据绑定、脏数据和单引号前缀,希望我的学习笔记能够帮助你们,从零开始学习 SpreadJS,并逐步精通。

在此前的学习笔记中,相信大家已经学会并熟练掌握了SpreadJS的表单、函数、工作簿及产品的基本使用方法。在之后的学习阶段,我们将更进一步,深入了解SpreadJS的数据绑定、单元格类型及前端导入导出Excel等核心功能,充分体验“仅需100多行代码,就可将Excel嵌入Web应用系统” 的全过程。

SpreadJS 学习笔记的配套视频资料,请在此页面观看、下载。

SpreadJS 的数据绑定

SpreadJS 作为一个类Excel的纯前端表格控件,有着和Excel高度类似的功能和用户体验,但同时也有很多Excel所没有的独特功能,数据绑定就是其中之一。

数据绑定作为SpreadJS最常用的功能,主要分为表单级别的绑定、单元格级别的绑定和整个表格的数据绑定。

1. 表单级别绑定

使用setDataSource和getDataSource方法实现绑定数据源、获取数据源。
绑定列时可以通过设置formatter指定列的展示样式,例如数据源的出生日期格式为:"DATE_OF_BIRTH":"1958-10-26 00:00:00",设置formatter:'yyyy/m/d'后出生日期显示为:

此外,还可自定义设置某列的样式为checkbox(单选框)等,例如下图“过敏史”一列:

2. 单元格级别的绑定

使用getBindingPath方法,用于获取指定单元格的绑定信息。
点击单元格,如果该单元格绑定了数据源,则可以获取该单元格的绑定信息:
 

3. 表格绑定

表格绑定,实质上是一种特殊的单元格级别绑定。使用表格绑定,可以给表格绑定不同的数据,例如下图,通过点击按钮,即可实现给表格绑定不同的数据源:

点击按钮,绑定新的数据源,结果如下图:

SpreadJS 的导航、脏数据和单引号前缀

SpreadJS单元格导航行为

在SpreadJS中,按下tab键,默认是移动到下一个单元格。当然,在GC.Spread.Sheets.Commands中可以定义这些导航操作,如下图:切换下拉框的内容,可以重新定义按下  Tab 键时的行为。

当选择"先单元格再控件"时,选中项移动到最后一个单元格时会再次选中页面的其他控件。

SpreadJS如何处理脏数据

在SpreadJS中,使用 getDirtyRows 和 getDirtyCells 可以获取表单上发生数据变更的单元格或行,使用
clearPendingChanges ,可以清除值变更、插入/删除行的状态。
"脏数据"的定义:

  • 当单元格的值变更时,该单元格为脏数据;
  • 当单元格的值变更时,该单元格所在行均为脏数据;
  • 当插入一行,并在单元格中设置值时,该行与该单元格不是脏数据

举例:如图所示,插入一行,并在A1中输入123,点击获取插入行,显示新插入的行号为0。此时,点击获取行脏数据、获取单元格脏数据均无反应。
 

SpreadJS单引号前缀

当你输入的值带有单引号前缀',输入的值会被转换并存储为字符串。如下图:

SpreadJS 导航、脏数据、单引号前缀示例:editCell.zip

OK,今天先记录到这里,下一周学习计划: SpreadJS的复制粘贴、单元格格式和单元格类型。

PS:文中提到的学习视频和示例源码,都已经上传到SpreadJS官网的【入门视频】中,欢迎大家观看学习。

>>视频地址

从零开始,SpreadJS新人学习笔记【第4周】的更多相关文章

  1. 从零开始,SpreadJS 新人学习笔记(第二周)

    Hello,大家好,我是Fiona.经过上周的学习,我已经初步了解了SpreadJS的目录结构,以及如何创建Spread项目到我的工程目录中.>>还不知如何开始学习SpreadJS的同学, ...

  2. 从零开始,SpreadJS新人学习笔记【第3周】

    表单&函数 阔别多日, SpreadJS新人学习笔记,本周起正式回归!(在断更的这一个月中,我为大家先后录制了14期SpreadJS产品入门系列学习视频,希望帮助那些正在学习和使用 Sprea ...

  3. 从零开始,SpreadJS新人学习笔记【第5周】

    复制粘贴.单元格格式和单元格类型 本周,让我们一起来学习SpreadJS 的复制粘贴.单元格格式和单元格类型,希望我的学习笔记能够帮助你们,从零开始学习 SpreadJS,并逐步精通. 在此前的学习笔 ...

  4. 从零开始,SpreadJS 新人学习笔记

    Hello,大家好,我是Fiona,从事前端开发工作,我十分热爱我的工作和一直默默栽培我的老板(这段请加粗). 前不久,接到老板的安排: 说实话,接到这个需求,我整个人的状态是这样的: 但是,我不能辜 ...

  5. 红帽学习笔记[RHCSA] 第二周

    目录 红帽学习笔记[RHCSA]第二周 环境 第七课[网络配置相关] 在Vmware中添加网卡 将网卡添加到虚拟机上 关于网卡命名规则 配置网络 网络配置命令总结 更改hostname 关于SSH的一 ...

  6. 20145230《java学习笔记》第九周学习总结

    20145230 <Java程序设计>第9周学习总结 教材学习内容 JDBC JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作, ...

  7. 红帽学习笔记[RHCSA] 第一周

    目录 红帽学习笔记[RHCSA] 环境 第一课 关于Shell 命令的基础知识 在终端中敲命令的快捷键 本次课程涉及的命令 第二课 常用的目录结构与用途 本次课程涉及到的命令 第三课 关于Linux的 ...

  8. 201521123103 《Java学习笔记》第二周学习笔记

    一.本周学习总结 1.学习了数据类型的使用:整数类型.浮点类型. boolean类型.数组等以及类型的转换,最重要的是学会了import引用包: 2.学习了string类对象的拼接.字符串池.枚举类型 ...

  9. 201521123047 《Java学习笔记》第二周学习总结

    1. 本周学习总结 -知道并了解到浮点数的误差关系,懂得运java.math.BigDecimal来进行浮点数的精确计算 -对于"="与"=="的区分 -字符串 ...

随机推荐

  1. NTT 练习

    一 . Rikka with Subset  题目: http://acm.hdu.edu.cn/showproblem.php?pid=5829 参考  https://blog.csdn.net/ ...

  2. 2019牛客暑期多校训练营(第二场)E 线段树维护dp转移矩阵

    题意 给一个\(n\times m\)的01矩阵,1代表有墙,否则没有,每一步可以从\(b[i][j]\)走到\(b[i+1][j]\),\(b[i][j-1]\),\(b[i][j+1]\),有两种 ...

  3. Codeforces 1054D Changing Array 贪心+异或和

    题意 给一个长度为\(n\)的位数为\(k\)的整数数列\(a\),一次操作可将任意\(a_i\)取反,问经过任意次操作后最多有多少个区间异或和不为\(0\) 分析 求出前缀异或和,区间异或和为\(0 ...

  4. 【WebStorm】前端工具开发利器webstrom专篇

    ---------------------------------------------------------------------------------[亲身实测] WebStorm混搭sv ...

  5. Luogu P5564 [Celeste-B]Say Goodbye (多项式、FFT、Burnside引理、组合计数)

    题目链接 https://www.luogu.org/problem/P5564 题解 这题最重要的一步是读明白题. 为了方便起见下面设环长可以是\(1\), 最后统计答案时去掉即可. 实际上就相当于 ...

  6. hadoop+zookeeper+hbase伪分布式安装

    基本安装步骤 安装包下载 从大数据组件下载地址下载以下组件安装包 hadoop-2.6.0-cdh5.6.0.tar.gz hbase-1.0.0-cdh5.6.0.tar.gz zookeeper- ...

  7. flask读书记录

    1. 在flask中,如果我们在视图函数中使用data = request.get_json()方法获取数据,那么在客户端发送POST请求时,就需要设置设置正确的Content-Type首部.在aja ...

  8. 震惊!文科生如何三个月转行成为Java工程师?

    点击上方“程序员江湖”,选择“置顶或者星标” 你关注的就是我关心的! 作者:以大橘为重链接:https://www.nowcoder.com/discuss/156087 楼主是19届应届生,去年在牛 ...

  9. js 处理url参数,应用导航分类

    1.先上图 2.代码 html <li><a href="javascript:void(0);" data-cid = "{$v['id']}&quo ...

  10. react 脚手架 及路由和 redux

    前提是我们需要下载 nodejs 使用 npm 下载 react 的脚手架,react-router-dom,redux 全局下载 react 的脚手架:npm i create-react-app ...