handsontable-developer guide-data binding,data sources

数据绑定:

1、表格中得数据是引用了数据源中的数据:表格中数据改变,数据源中得数据也改变;数据源中得数据改变,通过render方法,表格中的数据也改变;

2、如果想把数据源中的数据和表格中的数据分开:JSON.parse(JSON.stringify(data2))

3、保存之前clone表格,使用afterChange的var tmpData = JSON.parse(JSON.stringify(data3));语句。

afterChange:cell改变之后,会触发function(changes, source){}changes:是二维数组,每一被编辑的单元格信息有:[row, prop, oldVal, newVal]source:alter", "empty", "edit", "populateFromArray", "loadData", "autofill", "paste"

数据源:

1、数组

data = [
  [‘‘, ‘Kia‘, ‘Nissan‘, ‘Toyota‘, ‘Honda‘, ‘Mazda‘, ‘Ford‘],
  [‘2012‘, 10, 11, 12, 13, 15, 16],
  [‘2013‘, 10, 11, 12, 13, 15, 16],
  [‘2014‘, 10, 11, 12, 13, 15, 16],
  [‘2015‘, 10, 11, 12, 13, 15, 16],
  [‘2016‘, 10, 11, 12, 13, 15, 16]
];

2、隐藏第二列

columns: [
  {data: 0},
  {data: 2},
  {data: 3},
  {data: 4},
  {data: 5},
  {data: 6}
]

3、对象数组

objectData = [
  {id: 1, name: ‘Ted Right‘, address: ‘‘},
  {id: 2, name: ‘Frank Honest‘, address: ‘‘},
  {id: 3, name: ‘Joan Well‘, address: ‘‘},
  {id: 4, name: ‘Gail Polite‘, address: ‘‘},
  {id: 5, name: ‘Michael Fair‘, address: ‘‘},
];

4、对象数组嵌套列映射

nestedObjects = [
  {id: 1, name: {first: "Ted", last: "Right"}, address: ""},
  {id: 2, address: ""}, // HOT will create missing properties on demand
  {id: 3, name: {first: "Joan", last: "Well"}, address: ""}
];
columns: [
  {data: ‘id‘},
  {data: ‘name.first‘},
  {data: ‘name.last‘},
  {data: ‘address‘}
];

5、对象数组自定义数据约定:数据源为空

hot5 = new Handsontable(container, {
  data: [],
  dataSchema: {id: null, name: {first: null, last: null}, address: null},
  startRows: 5,
  startCols: 4,
  colHeaders: [‘ID‘, ‘First Name‘, ‘Last Name‘, ‘Address‘],
  columns: [
    {data: ‘id‘},
    {data: ‘name.first‘},
    {data: ‘name.last‘},
    {data: ‘address‘}
  ],
  minSpareRows: 1
});

6、数据源为函数:http://docs.handsontable.com/0.16.0/tutorial-data-sources.html  最后一个

 var
  container6 = document.getElementById(‘example6‘),
  hot6;

hot6 = new Handsontable(container6, {
  data: [
    model({id: 1, name: ‘Ted Right‘, address: ‘‘}),
    model({id: 2, name: ‘Frank Honest‘, address: ‘‘}),
    model({id: 3, name: ‘Joan Well‘, address: ‘‘}),
    model({id: 4, name: ‘Gail Polite‘, address: ‘‘}),
    model({id: 5, name: ‘Michael Fair‘, address: ‘‘})
  ],
  dataSchema: model,
  colHeaders: [‘ID‘, ‘Name‘, ‘Address‘],
  columns: [
    {data: property(‘id‘)},
    {data: property(‘name‘)},
    {data: property(‘address‘)}
  ],
  minSpareRows: 1
});

function model(opt){   //...} 
时间: 2024-10-10 05:55:26

handsontable-developer guide-data binding,data sources的相关文章

Intel® Threading Building Blocks (Intel® TBB) Developer Guide 中文 Parallelizing Data Flow and Dependence Graphs并行化data flow和依赖图

https://www.threadingbuildingblocks.org/docs/help/index.htm Parallelizing Data Flow and Dependency Graphs In addition to loop parallelism, the Intel® Threading Building Blocks (Intel® TBB) library also supports graph parallelism. It's possible to cre

Data Binding MVVM 数据绑定 总结

示例代码:https://github.com/baiqiantao/DataBindingTest 参考:精通Android Data Binding    Android Data Binding(数据绑定)用户指南 官方教程:Data Binding Guide    API 关于 Data Binding Data Binding 解决了 Android UI 编程的一个痛点,官方原生支持 MVVM 模型可以让我们在不改变既有代码框架的前提下,非常容易地使用这些新特性. Data Bin

Android开发教程 - 使用Data Binding(一) 介绍

引言 Data Binding(数据绑定)发布于2015年的Google I/O大会,旨在减少Android开发中的大量模板代码(比如findViewById()),增加代码及逻辑清晰度,提高开发效率和维护效率. 什么是Data Binding Data Binding,即数据绑定,是Android团队实现MVVM架构的一种方法,使得数据(对象)可以直接绑定到布局的xml中,数据的变化直接反映到View上. 同时,Data Binding也支持双向绑定. 有什么好处 省去大量模板代码,比如fin

传智播客揭秘Android 6.0之Data Binding Guide

前言:Data Binding 解决了 Android UI 编程中的一个痛点,官方原生支持 MVVM 模型可以让我们在不改变既有代码框架的前提下,非常容易地使用这些新特性.其实在此之前,已经有些第三方的框架(RoboAndroid) 可以支持 MVVM 模型,无奈由于框架的侵入性太强,导致一直没有流行起来. 1.准备: Android Studio 更新到1.3或者更高 2.注意: Data Binding 是一个 support 包 3.新建一个Project: u 修改Project的Bu

Data Binding Library(数据绑定库)

引子 上图中有一些 TextView 和 Button 等,正常情况下,互联网APP都会从服务器抓取数值,然后在 Activity中 findViewById 再进行setText等等.这篇文章就是用来解放你的双手劳动力 的,使用数据绑定库可以不用去findView不用在写繁琐的 setText,只要从服务器获取json 转换成 javaBean格式然后 set,duang,,,,, 所有的值就自己展现在该有的地方了. Demo: https://github.com/Afra55/DataBi

Android Data Binding代码实践(告别findViewById)

Data Binding实战(一) Data Binding语法解析(二) Data Binding高级用法(三) 好了,继前三篇学习了Data Binding之后,我们可以发现它的强大之处有这么几点: 1.使用MVVM模式,让整个项目结构清晰明了 2.通过ViewModel连接View和Model,使得View与Model层解耦,分层后各司其职,维护方便 3.易于项目的测试 4.可以根据id自动生成View的对象,再也不用findViewById了 好了,说了好处,当然也有不太好的地方,毕竟是

Data binding concepts in .NET windows forms

[转]Data binding concepts in .NET windows forms A detailed look at the concepts involved in data binding and controlling data binding. Example showing how to control DataBinding VB.NET - 22 Kb Example showing how to control DataBinding C# - 13 Kb Intr

告别findViewById(),ButterKnife,使用Google Data Binding Library(1)

Data Binding Library 用数据绑定编写声名性布局,可以最大限度的减少findViewById(),setOnClickListener()之类的代码.并且比起findViewById(),所有view是一次性初始化完成,性能更快. Data Binding Library具有灵活性和不错的兼容性,支持2.1以后的版本. 需要 Android Plugin for Gradle 1.5.0-alpha1或以上版本. 至于怎么升级? https://developer.androi

Android Data Binding Library 官方文档(译)

地址:https://developer.android.google.cn/topic/libraries/data-binding/index.html 本文地址:http://blog.csdn.net/jjwwmlp456/article/details/54915981 Data Binding Library (数据绑定库),旨在减少绑定应用程序逻辑和布局所需的一些耦合性代码 最低支持Android 2.1 (API Level 7) 构建环境 使用gradle插件1.5-alpha