GridView是什么?

GridView是由Mr.Co开发的一套开源的多功能表格插件,主要用于让页面开发者在开发中节省拼接Table表格和操作Table表格相关复杂操作的开发成本与时间。开发人员可以用GridView快速开发出带有集成编辑、组合表头、分页、表行列操作等一系列功能的GridView。GridView依赖于jQuery类库开发而成,它可以使用在任何Web页面中,比较适合后端项目使用。

主要特点

  • 快速:体积小,加载速度快
  • 开源:开放源代码,高品质
  • 扩展:基于对象库的设计,可根据需求增减功能
  • 风格:修改GridView风格非常容易,只需修改一个 CSS 文件
  • 兼容:支持大部分主流浏览器,比如 IE、Firefox、Safari、Chrome、Opera

快速使用

 /**引入皮肤样式**/
<link href="gridview.css" rel="stylesheet">
/**引入jQuery类库**/
<script src="jquery.js"></script>
/**引入gridview类库**/
<script src="gridview.js"></script>
/**页面中新增一个容器元素**/
<div id="grid"></div>
 //初始化
GridView({
container: $('#grid'),
dataSource: [
{
id: '006',
name: "张三",
age: "47",
sex: '男',
address: "重庆市",
income: '100W'
}
],
columns: [
{
name: '系统编号',
field: 'id',
order: 0,
width: 100,
titleAlign: 'center',
contentAlign: 'left',
display: ''
},
{
name: '年龄',
field: 'age',
order: 2,
width: 60,
titleAlign: 'center',
contentAlign: 'center',
link: '/main.html?key={id}'
}
]
});

初始化参数配置

 //表格容器
container: $('body') //表格唯一ID
id: 'gridView' + parseInt(100000000 * Math.random()) //是否隐藏表格头部
hidenHead: false //是否为组合表头
groupHead: {
//如果为组合表头必须设置为true
isGroup: false,
template: $('#gridview_head').html()
}, //表格行checkbox是否为单选,false : 非单选 true : 单选
singleSeleted: false //表格默认样式名称
className: 'gridView' //行间隔-高亮变色行样式名称
columnHighClassName: 'highBack' //主键ID,如果不设置将会导致行更新操作时获取不到主键ID
dataKeyID: 'id' //当数据不够分页条数行的时候填充空白行
columnFilling: false //是否需要显示表格行checkbox可选功能, false : 不显示 true : 显示
selectedColumn: true //是否添加行序号, false : 不显示 true : 显示
columnNo: true //行合并,默认为全部不合并
mergeRows: {
//是否合并 false : 不合并 true : 合并
isMerge: false,
//需要合并的列索引,不给此属性,默认合并所有列
index: [0, 1, 2, 3, 4, 5]
} //数据表格格式设置,表格数据显示规则就靠它了
columns:[
{
//需要映射的字段Key
field:'name',
//表格头部标题
name:'姓名',
//表格列排序,数字越小越靠前
order:1,
//表格宽度
width:200,
//表格头部标题显示位置,属性与CSS中的text-align属性一致
titleAlign:'center',
//表格内容部分显示位置,属性与CSS中的text-align属性一致
contentAlign:'center',
//控制该列是否显示 block 显示 none 不显示
display:'none',
//当该属性存在,clickCallback不存在的时候,当前元素会变成一个超链接
link:'http://www.baidu.com',
//监听当前元素的点击事件
clickCallback:function(){
//当前元素对象
var _$this = $(this);
},
//返回格式化后的数据信息显示到表格中
formatCallback: function ($this) {
return $this.text() == '张三' ? '张三好帅' : '王五好帅';
}
}
] //编辑列设置属性配置
editColumn:[
{
//操作名称
name: '删除',
//操作类型,预定义类型有 delete(删除)、update(表格编辑)、common(自定义)三种类型
type: 'delete',
//当type为delete、update时候需要设置action的ajax请求地址,传参方式在{}括号中填写相对于的数据源中所映射的Key名称便可
action: '/main.ashx?key={id}',
//是否显示操作项
visible: true,
//在操作名称后面追加其它HTML元素,这里我用于做间隔
after: '<span>|</span>',
//在当前操作项中追加一个ICON操作图片,也可以追加其它HTML元素
append: '<img src="btn_save.gif" />',
//监听当前编辑元素的点击事件
clickCallback:function (actionType, actionURL) {
//actionType 获取当前的操作type, 比如delete或者update
//actionURL 获取到解析后的action地址,用于ajax请求
//this为当前编辑元素对象,你拿到它可以做其它相关DOM操作
var _$this = this;
},
//返回格式化后的数据信息替换操作名称
formatCallback:function (data) {
//data 当前一行的data数据
if (data.id == '001')
return '恢复';
else
return '删除';
}
},
{
//操作名称
name: '更新',
//操作类型,预定义类型有 delete(删除)、update(表格编辑)、common(自定义)三种类型
type: 'update',
//定义编辑时显示的表单类型
columns: [
{
//现在的列索引位置
rowIndex: 1,
//表单类型,可以是所以表单类型,比如select、text、passwod等等
type: 'hidden',
//表单名称
name: 'hidID'
},
{
//现在的列索引位置
rowIndex: 2,
//表单类型,可以是所以表单类型,比如select、text、passwod等等
type: 'select',
//表单名称
name: 'ddlCity',
//select异步请求数据源的ajax地址
action: '/main.ashx',
//数据对象
dataSource: [
{ id: '010', name: '北京市' },
{ id: '023', name: '重庆市' }
],
//select绑定的value
dataKeyID: 'id',
//select绑定的text
dataKeyText: 'name'
}
],
after: '<span>|</span>',
append: '<img src="xg.gif" width="48" height="22" />',
saveAppend: '<img src="btn_save.gif" width="48" height="22" />',
clickCallback: function (actionType, actionURL) {
alert('点击更新');
//返回true时,行内会执行colums配置的编辑样式,false时将会被忽略
return true;
}
}
] //分页属性配置
pages:{
//是否显示分页, block或者不设置display属性 = 显示 none = 不显示
display: 'none',
//默认页码
index: 0,
//每页显示条数
size: 8,
//总条数
count: 24,
pageClickEvent: function (index/*当前页码*/, grid/*GridView引用对象,用于再次调用绑定表格数据,不调用绑定方法则表格数据不会更新*/) {
//在这里写请求后台拿数据的Ajax调用
//然后再次调用
grid.ResetBindData([{ id: '001', name: "张三", age: "32", sex: '男', address: "北京市", income: '100W' }, { id: '002', name: "王老五", age: "23", sex: '男', address: "重庆市", income: '100W' }]);
}
} //行单击监听方法
columnClickHandle:function(){
var _$this = $(this)
} //行双击监听方法
columnDBClickHandle:function(){
var _$this = $(this)
} //行复选框的change事件监听方法
checkboxChangeHandle:function(){
var _checked = data.checked,
_value = data.value;
}

官网地址:http://gridview.mrco.cn

分享一个我的JavaScript版GridView多功能表格的更多相关文章

  1. 分享一个开源的JavaScript统计图表库,40行代码实现专业统计图表

    提升程序员工作效率的工具/技巧推荐系列 推荐一个功能强大的文件搜索工具SearchMyFiles 介绍一个好用的免费流程图和UML绘制软件-Diagram Designer 介绍Windows任务管理 ...

  2. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  3. 分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型

    这张图每位程序员应该都深有感触. 人民心目中的程序员是这样的:坐在电脑面前噼里啪啦敲着键盘,运键如飞. 现实中程序员是这样的:编码5分钟,调试两小时. 今天我要给大家分享一个用WebGL开发的网站,感 ...

  4. Javascript版-显示相应图片的详细信息

    Hi All, 分享一个通过JS来显示相应图片的详细信息. 需求:进入页面时,动态加载图片信息:当鼠标移动到某一图片上时,则显示该图片的大图片并显示相应说明信息:当鼠标移开图片时,清除新创建的元素. ...

  5. 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行

    [微信支付]分享一个失败的案例 2018-06-04 08:24 by stoneniqiu, 2744 阅读, 29 评论, 收藏, 编辑 这个项目是去年做的,开始客户还在推广,几个月后发现服务器已 ...

  6. JavaScript版拼图小游戏

    慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例 拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较 ...

  7. [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手"

    [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://ww ...

  8. 前端优秀作品展示,JavaScript 版水果忍者

    <水果忍者>是一款非常受喜欢的手机游戏,刚看到新闻说<水果忍者>四周年新版要上线了.网页版的切水果游戏由百度 JS 小组开发,采用 vml + svg 绘图,使用了 Rapha ...

  9. 在线聊天室的实现(1)--websocket协议和javascript版的api

    前言: 大家刚学socket编程的时候, 往往以聊天室作为学习DEMO, 实现简单且上手容易. 该Demo被不同语言实现和演绎, 网上相关资料亦不胜枚举. 以至于很多技术书籍在讲解网络相关的编程时, ...

随机推荐

  1. Java多线程系列--“基础篇”04之 synchronized关键字

    概要 本章,会对synchronized关键字进行介绍.涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchro ...

  2. Java多线程系列--“JUC集合”07之 ArrayBlockingQueue

    概要 本章对Java.util.concurrent包中的ArrayBlockingQueue类进行详细的介绍.内容包括:ArrayBlockingQueue介绍ArrayBlockingQueue原 ...

  3. 实战:微信小程序支付开发具体流程

    来源:授权地址作者:会编码的熊 该文章纪录了我在开发小程序支付过程中的具体流程 1. 申请微信支付 小程序认证后进入微信支付申请小程序的微信支付 填写企业信息对公账户并上传凭证后,微信支付会打一笔随机 ...

  4. 一步一步开发Game服务器(一)

    什么是服务器?对于很多人来说也许只是简单成为在服务器端运行的程序的确如此,服务器通常意义就是说在服务器端运行的程序而已.那么我们怎么理解和分析游戏服务器哪? 传统意义上来说,程序运行后,正常流程, 启 ...

  5. 爬虫--Scrapy

    Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...

  6. Struts2 源码分析——调结者(Dispatcher)之准备工作

    章节简言 上一章笔者讲到关于struts2过滤器(Filter)的知识.让我们了解到StrutsPrepareFilter和StrutsExecuteFilter的作用.特别是StrutsPrepar ...

  7. 六、GAIA

    1.      GAIA CSR GAIA (Generic Application Interface Architecture)提供了一个端到端的,与主机无关的生态系统来实现主机应用程序对设备的功 ...

  8. Spring MVC 原理介绍(执行流程)

    Spring MVC工作流程图   图一   图二    Spring工作流程描述       1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServle ...

  9. ES6笔记(6)-- Set、Map结构和Iterator迭代器

    系列文章 -- ES6笔记系列 搞ES6的人也是够无聊,把JS弄得越来越像Java.C++,连Iterator迭代器.Set集合.Map结构都出来了,不知道说什么好... 一.简单使用 1. iter ...

  10. .NET Core 调用WCF 服务

    .NET Core 和ASP.NET Core 已经可以调用WCF 服务. 环境要求: VS2015 Update 2 +VS2015 Tooling + .NET Core SDK 下载地址: ht ...