详解能在多种前端框架下使用的表格控件


Posted in Javascript onJanuary 11, 2017

近几年Web前端框架特别流行,比如AngularJS、AngularJS 2、ReactJS、KnockoutJS、VueJS等。表格控件是我们在开发中经常要用到的控件。有没有能够在多种前端控件下都能使用的表格控件?最近研究发现Wijmo中的FlexGrid是一款不错的表格控件,它能支持很多主流的框架。这里主要介绍在纯JavaScript和AngularJS下FlexGrid的使用。

一、在纯JavaScript下使用FlexGrid

HTML文件:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title></title>
 <meta charset="utf-8" />
 <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
 <!-- Wijmo -->
 <link href="styles/vendor/wijmo.min.css" rel="stylesheet" />
 <script src="scripts/vendor/wijmo.min.js" type="text/javascript"></script>
<script src="scripts/vendor/wijmo.grid.min.js" type="text/javascript"></script>
 <script src="scripts/app.js" type="text/javascript"></script>
 <script src="scripts/FlexGrid.js" type="text/javascript"></script>
</head>
<body>
 <div id="grid">
 </div>
</body>
</html>

1、  引入Wijmo的JS文件和样式:wijmo.min.css 、wijmo.min.js、wijmo.grid.min.js

2、  引入app.js和FlexGrid.js文件。

3、  定义一个div元素用于显示Grid

App.js文件:

var appData = {
 getData: function (count) {
 var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','),
  data = new wijmo.collections.ObservableArray();
 for (var i = 0; i < count; i++) {
  data.push({
  id: i,
  country: countries[i % countries.length],
  date: new Date(2014, i % 12, i % 28),
  amount: Math.random() * 10000,
  active: i % 4 === 0
  });
 }
 return data;
 }
}

在app.js中定义appData,其中的getData方法根据传入的Count产生数据。

FlexGrid.js:

(function (wijmo, data) {
 var cv = data.getData(30);
 var grid = new wijmo.grid.FlexGrid('#grid');
 grid.itemsSource = cv;
 })(wijmo, appData);

在FlexGrid.js中调用data.getData(30)获取数据30个数据。获得FlexGrid控件,并进行数据绑定。

下面就是运行结果:

详解能在多种前端框架下使用的表格控件

二、在AngularJS下使用FlexGrid

HTML文件:

<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
 <meta charset="utf-8" />
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
 <script src="scripts/vendor/wijmo.min.js"></script>
 <script src="scripts/vendor/wijmo.grid.min.js"></script>
 <script src="scripts/vendor/wijmo.angular.min.js"></script>
 <link rel="stylesheet" href="styles/vendor/wijmo.min.css" />
 <script src="scripts/app.js"></script>
 <script src="scripts/control.js"></script>
</head>
<body ng-app="app" ng-controller="appCtrl">
 <wj-flex-grid items-source="data" >
 </wj-flex-grid>
</body>
</html>

1、  引入angular.min.js

2、  引入Wijmo相关的文件wijmo.min.js、wijmo.grid.min.js、wijmo.angular.min.js、wijmo.min.css

3、  引入app.js和control.js

4、  添加NG指令ng-app、ng-controller

5、  通过wj-flex-grid指令定义表格,并设置数据源

app.js文件:

var app = angular.module('app', ['wj']);

control.js文件:

app.controller('appCtrl', function ($scope) {
 // generate some random data
 function getData(count) {
 var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','),
  data = new wijmo.collections.ObservableArray();
 for (var i = 0; i < count; i++) {
  data.push({
  id: i,
  country: countries[i % countries.length],
  date: new Date(2014, i % 12, i % 28),
  amount: Math.random() * 10000,
  active: i % 4 == 0
  });
 }
 return data;
 }
 $scope.data = getData(30);
});

其运行结果和纯JS的结果完全一样。

通过上面的两个示例可以看到无论是在纯JS中还是在AngularJS中使用FlexGrid都非常简单。尤其是在AngularJS框架中通过Wijmo自定义的Angular指令wj-flex-grid使用表格控件很容易。Wijmo支持AngularJS、AngularJS 2、ReactJS、KnockoutJS、VueJS、Ionic等前端框架,就不在一一示例。FlexGrid的功能包括排序、过滤、分组、分页、单元格合并、冻结、格式化、条件样式、单元格模板、主题、树形结构等。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
在线编辑器中换行与内容自动提取
Apr 24 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
Jul 17 Javascript
js判断url是否有效的两种方法
Mar 04 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
Mar 06 Javascript
每日十条JavaScript经验技巧(二)
Jun 23 Javascript
JS实现输入框提示文字点击时消失效果
Jul 19 Javascript
Bootstrap CSS使用方法
Dec 23 Javascript
浅谈javascript中的事件冒泡和事件捕获
Dec 28 Javascript
javascript数组去重常用方法实例分析
Apr 11 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
May 02 Javascript
在vue中使用回调函数,this调用无效的解决
Aug 11 Javascript
vuejs父子组件通信的问题
Jan 11 #Javascript
bootstrap 表单验证使用方法
Jan 11 #Javascript
原生js实现无缝轮播图效果
Jan 11 #Javascript
Bootstrap 填充Json数据的实例代码
Jan 11 #Javascript
原生js实现放大镜效果
Jan 11 #Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
Jan 11 #Javascript
微信小程序开发经验总结(推荐)
Jan 11 #Javascript
You might like
简单的页面缓冲技术
2006/10/09 PHP
PHP学习笔记之二
2011/01/17 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
php生成zip文件类实例
2015/04/07 PHP
jQuery代码优化 事件委托篇
2011/11/01 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
JS自定义滚动条效果
2020/03/13 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
pandas计数 value_counts()的使用
2019/06/24 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
keras的三种模型实现与区别说明
2020/07/03 Python
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
学校门卫岗位职责
2014/03/16 职场文书
售房协议书
2014/08/19 职场文书
学生违反校规检讨书
2014/10/28 职场文书
工作检讨书大全
2015/01/26 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript