简单的表格json控件
简单的表格json控件
由于最近做的项目一直有表格的形式展示数据,所以想写个简单的关于表格方面的控件出来,想用JSON数据直接渲染出来,因为开发给到我们前端的字段可能会叫不同的名字,所以我们前端渲染页面时候不应该依赖以字段的key值来渲染,也就是说不管开发返回的key键,我这个控件都能满足支持它。所以今天就写了个简单的控件出来,JS代码就100行左右的代码。至于网上很多表格控件支持分页,排序,全选(多选,单选)功能等,而我这个控件只支持渲染表格的控件,且把他们表格渲染数据分离出来,且做只做一件事情,就是渲染JSON数据到表格里面来,如果想支持分页的效果可以看我这篇文章 JS分页请点击!一样的 只是在表格底部多加个分页而已!如果想支持全选效果,请看我这篇文章 全选请点击我!
如果想对表格排序,请看我这篇文章 表格排序请点击我!
下面不多说,请先看JSfiddle效果,效果如下:
当然控件里面也支持渲染单选框或者复选框,只是可以配置参数isRadio为true或者isCheck(复选框)为true即可,如果不需要单选框或者复选框的话,他们都为false,默认情况下都为false。
HTML代码如下:
<table cellspacing = "0" cellpadding = "0">
<thead>
<tr>
<!--<th width="5%">选择</th> -->
<th width="20%">表格控件1</th>
<th width="10%">表格控件2</th>
<th width="20%">表格控件3</th>
<th width="20%">表格控件4</th>
<th width="15%">表格控件5</th>
<th width="15%">表格控件6</th>
</tr>
</thead>
<tbody id="j-tbody"></tbody>
</table>
CSS代码如下:
<style>
table {
width:100%;
border:1px solid #ccc;
border-right:none;
border-bottom:none;
}
table thead th {
font-size:14px;
color: #333;
font-weight:normal;
border-right:1px solid #ccc;
border-bottom:1px solid #ccc;
}
table td{
font-size:12px;
color: #333;
font-weight:normal;
border-right:1px solid #ccc;
border-bottom:1px solid #ccc;
text-align:center;
}
</style>
JS代码如下:
/**
* 简单的表格json数据展示
* @time 2014-4-23
* var data = [
{"parentId":9944267,"categoryName":"创建交易","categoryId":9944343},
{"parentId":9944267,"categoryName":"支付","categoryId":9944344},
{"parentId":9944267,"categoryName":"退款","categoryId":9944344},
{"parentId":9944267,"categoryName":"退款","categoryId":9944344},
{"parentId":9944267,"categoryName":"退款","categoryId":9944344},
{"parentId":9944267,"categoryName":"退款","categoryId":9944344}];
*/ function TableData(options) { this.config = {
container : '#j-tbody', // 默认tbody容器
JSONData : '', // json数据
isRadio : false, // 是否单选
isCheck : false, // 是否多选
callback : null
}; this.cache = { }; this.init(options);
} TableData.prototype = { constructor: TableData, init: function(options) {
this.config = $.extend(this.config,options || {});
var self = this,
_config = self.config; // 渲染表格数据
self._renderHTML();
},
/*
* 渲染tbody里面的数据
* @method _renderHTML
* @private
*/
_renderHTML: function() {
var self = this,
_config = self.config; // 先清空
$(_config.container).html('');
for(var i = 0; i < _config.JSONData.length; i++) {
var tr = document.createElement("tr"),
arrs = self._returnArrs(_config.JSONData[i]);
for(var j = 0; j < arrs.length; j++) {
var td = document.createElement('td');
$(td).html(arrs[j]);
tr.appendChild(td);
}
if(_config.isRadio) {
var radio = $('<td><input type="radio" class=""/></td>');
$(tr).prepend(radio);
}
if(_config.isCheck) {
var radio = $('<td><input type="checkbox" class=""/></td>');
$(tr).prepend(radio);
}
$(_config.container)[0].appendChild(tr);
} // 一次性插入数据 _config.callback && $.isFunction(_config.callback) && _config.callback();
},
/*
* 返回数组
* @private _returnArrs
* @return {arrs} 返回数组
*/
_returnArrs: function(obj){
var arrs = [];
for(var k in obj) {
if(obj.hasOwnProperty(k)) {
arrs.push(obj[k]);
}
}
return arrs;
}
};
JS初始化方式如下:
// 初始化数据
$(function(){
var data = [
{"parentId":9944267,"categoryName":"创建交易","categoryId":"9944343","XX":"111","YY":"XXX","ZZ":'aa1'},
{"parentId":9944268,"categoryName":"支付","categoryId":"9944343","XX":"111","YY":"XXX","ZZ":'aa2'},
{"parentId":9944269,"categoryName":"退款","categoryId":"9944343","XX":"111","YY":"XXX","ZZ":'aa3'},
{"parentId":9944270,"categoryName":"退款","categoryId":"9944343","XX":"111","YY":"XXX","ZZ":'aa4'},
{"parentId":9944271,"categoryName":"退款","categoryId":"9944343","XX":"111","YY":"XXX","ZZ":'aa5'},
{"parentId":9944272,"categoryName":"退款","categoryId":"9944343","XX":"111","YY":"XXX","ZZ":'aa6'}];
new TableData({
JSONData : data
});
});
简单的表格json控件的更多相关文章
- iOS:UITableView表格视图控件
UITableView:表格视图控件,继承滚动视图控件UIScrollView,(类似于UIPickerView选择器,它主要通过设置数据源代理和行为代理实现协议来设置单元格) 对表格的操作主要 ...
- 表格树控件QtTreePropertyBrowser编译成动态库(设计师插件)
目录 一.回顾 二.动态库编译 1.命令行编译动态库和测试程序 2.vs工具编译动态库和测试程序 3.安装文档 4.测试文档 三.设计师插件编译 1.重写QDesignerCustomWidgetIn ...
- Qt实现表格树控件-自绘树节点虚线
目录 一.开心一刻 二.自绘树节点? 三.效果展示 四.实现思路 1.可扩展接口 2.函数重写 3.同步左侧表头 五.相关文章 原文链接:Qt实现表格树控件-自绘树节点虚线 一.开心一刻 一程序员第一 ...
- (转)sl简单自定义win窗体控件
sl简单自定义win窗体控件 相信大家接触过不少win窗体控件ChildWin子窗口就的sl自带的一个 而且网上也有很多类似的控件,而今天我和大家分享下自己制作个win窗体控件,希望对初学 ...
- asp.net学习之 数据绑定控件--表格绑定控件
原文:asp.net学习之 数据绑定控件--表格绑定控件 数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件 ...
- 超级实用的表格树控件--QtTreePropertyBrowser
目录 一.源码下载 二.代码编译 1.intersect函数替换为intersected 2.移除UnicodeUTF8 3.QtGui模块拆分 4.Q_TYPENAME错误 5.qVariantVa ...
- Qt实现表格树控件-支持多级表头
目录 一.概述 二.效果展示 三.实现方式 四.多级表头 1.数据源 2.表格 3.QStyledItemDelegate绘制代理 五.测试代码 六.相关文章 原文链接:Qt实现表格树控件-支持多级表 ...
- WPF教程十一:简单了解并使用控件模板
WPF教程十一:简单了解并使用控件模板 这一章梳理控件模板,每个WPF控件都设计成无外观的,但是行为设计上是不允许改变的,比如使用Button的控件时,按钮提供了能被点击的内容,那么自由的改变控件外观 ...
- 自己写的简单的jQuery分页控件
因为是内部项目,需要分页控件,网上找了一大堆,给领导一看,都说不行,原因很简单,太复杂,领导就想要个简单点的,类似百度的分页,可是自己也没写过Jquery控件,硬着头皮找了些资料,写了这个分页控件,目 ...
随机推荐
- 利用LOCK机制来定位前缀劫持者
一.文章信息 作者:Tongqing Qiu, Lusheng Ji, Dan Pei等 单位:佐治亚理工学院.美国电话电报公司实验室.康奈尔大学等 来源:Conference on Usenix S ...
- HUST1017(KB3-A Dancing links)
1017 - Exact cover Time Limit: 15s Memory Limit: 128MB Special Judge Submissions: 7270 Solved: 3754 ...
- @EnableDiscoveryClient与@EnableEurekaClient 区别
Eureka依赖: <dependency> <groupId>org.springframework.cloud</groupId> <arti ...
- oop(Object Oriented Programming)
嗯,昨天忙了一天没来及发,过年啊,打扫啊,什么搽窗户啊,拖地啊,整理柜子啊,什么乱七八糟的都有,就是一个字,忙. 好了,废话也不多说,把自己学到的放上来吧.嗯,说什么好呢,就说原型链啊 原型对象 每个 ...
- 平衡树、AVL树
平衡树 平衡树有AVL树.红黑树.2-3树.2-3-4树 AVL树 AVL树是最早的一种平衡树,它以发明者的名字命名:AVL是一种特殊的二叉搜索树,平移保证二叉搜索树的正确. 特征 在AVL树中节点的 ...
- 反向代理负载均衡调度:nginx
一.概述 反向代理:以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个 ...
- 一般处理程序HttpHandler的应用
ashx 一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名.一个httpHandler接受并处理一个http请求,类比于Java中的servlet.类比于在Ja ...
- 转:Web 开发中很实用的10个效果【附源码下载】
原文地址:http://www.cnblogs.com/lhb25/p/10-useful-web-effect.html 在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多 ...
- mysql 表格操作指令大全(Show、desc、create、insert into、delete、select、drop、update、alter)
使用数据库 use 数据库名 eg: use weiying 2. 查看库里所有的表 Show tables 3.查看所表的结构 desc 表名 desc score 4.建表create tabl ...
- javascript 正则表达式的使用
1. 语法 有两种定义正则表达式的方式 字面量形式 var expression = /pattern/flags 引用 MDN 的解释: pattern:正则表达式的文本. flags:标志,可以是 ...