第二百二十二节,jQuery EasyUI,DataGrid(数据表格)组件
jQuery EasyUI,DataGrid(数据表格)组件
学习要点:
1.加载方式
2.分页功能
本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于 Panel(面板)、Resizeable(调整大小)、LinkButton(按钮)、Pageination(分页)组件。
一.加载方式
DataGrid 以表格形式展示数据,并提供了丰富的选择、排序、分组和编辑数据的功能 支持。DataGrid 的设计用于缩短开发时间,并且使开发人员不需要具备特定的知识。它是 轻量级的且功能丰富。
class 加载方式
<table class="easyui-datagrid" data-options="width:400"> <thead> <tr> <th data-options="field:'username'">帐号</th> <th data-options="field:'email'">邮件</th> <th data-options="field:'create'">注册时间</th> </tr> </thead> <tbody> <tr> <td>蜡笔小新</td> <td>xiaoxin@163.com</td> <td>2014-10-1</td> </tr> <tr> <td>樱桃小丸子</td> <td>yingtao@163.com</td> <td>2014-10-2</td> </tr> <tr> <td>黑崎一护</td> <td>yihu@163.com</td> <td>2014-10-3</td> </tr> </tbody> </table>
JS 加载方式
datagrid()将table元素执行数据表格组件
html
<table id="box"> <thead> <tr> <th>帐号</th> <th>邮件</th> <th>注册时间</th> </tr> </thead> <tbody> <tr> <td>蜡笔小新</td> <td>xiaoxin@163.com</td> <td>2014-10-1</td> </tr> <tr> <td>樱桃小丸子</td> <td>yingtao@163.com</td> <td>2014-10-2</td> </tr> <tr> <td>黑崎一护</td> <td>yihu@163.com</td> <td>2014-10-3</td> </tr> </tbody> </table>
js
$(function () { $('#box').datagrid({ // width: 400, title: '用户列表', iconCls: 'icon-search', columns: [[ { field: 'username', title: '帐号', }, { field: 'email', title: '邮件', }, { field: 'date', title: '注册时间', } ]] }) });
二.分页和排序
DataGrid 属性,扩展自 Panel 面板
远程加载数据[重点]
如果是远程加载数据,html只需要写一个table标签即可
html
<table id="box"></table>
JSON 数据,content.json
[ { "user" : "蜡笔小新", "email" : "xiaoxin@163.com", "date" : "2014-10-1" }, { "user" : "樱桃小丸子", "email" : "xiaowanzi@163.com", "date" : "2014-10-2" }, { "user" : "黑崎一护", "email" : "yihu@163.com", "date" : "2014-10-3" } ]
js调用
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]] }) });
url string 从远程请求JSON 数据数据。默认为 null。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]] }) });
columns array DataGrid 列配置对象,详见列属性说明中更多细节。默认值为 undefined。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]] }) });
远程加载数据显示到表格原理图
pagination boolean 设置为 true,则在 DataGrid 组件底部显示分页工具栏。默认为 false。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true //组件底部显示分页工具栏 }) });
pageNumber number 设置分页时初始化页码。默认为 null。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9] //设置可选每页显示条数 }) });
pageSize number 设置分页时设置每页多少条。默认为10。注意与pageList结合
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9] //设置可选每页显示条数 }) });
pageList array设置分页时初始化条数选择大小。默认为[10,20,30,40,50]。设置可选每页显示条数,注意与pageSize结合
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9] //设置可选每页显示条数 }) });
pagePosition string 设 置 分 页 工 具 栏 的 位 置 。 可 选 值 为 :top,bottom,both。默认 bottom。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 pagePosition:'bottom' }) });
列属性,在 columns属性 里设置的属性
title string 列标题名称。默认 undefined。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 pagePosition:'bottom' }) });
field String 列字段名称。默认 undefined。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 pagePosition:'bottom' }) });
width number 列的宽度。没有设置则自适应。默认 undefined。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 pagePosition:'bottom' }) });
三.排序功能
sortName string 设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 sortOrder:'DESC' //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 }) });
sortOrder string 设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 sortOrder:'DESC' //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 }) });
multiSort boolean 设置是否运行多列排序,默认为 false。一般不使用,会将所有排序的字段和排序方法传输
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sortable:true, //则可以点击排序 order:'DESC' //点击排序的方式 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 // sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 // sortOrder:'DESC' //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 remoteSort:false, //设置服务器对数据进行排序。默认为 true。false不通过服务器排序 multiSort:true //设置是否运行多列排序,默认为 false。 }) });
remoteSort boolean 设置服务器对数据进行排序。默认为 true。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sortable:true, //则可以点击排序 order:'DESC' //点击排序的方式 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 // sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 // sortOrder:'DESC' //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 remoteSort:false //设置服务器对数据进行排序。默认为 true。false不通过服务器排序 }) });
method string 设置请求远程数据类型,默认为 post。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 sortOrder:'DESC', //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 method:'get' //设置请求远程数据类型,默认为 post。 }) });
queryParams object 设置请求远程数据发送的额外数据。默认为null。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 sortOrder:'DESC', //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 queryParams:{ //设置请求远程数据发送的额外数据 id:1 } }) });
列属性,在 columns 里设置的属性
sortable boolean 设置为 true,则可以点击排序。默认 undefined。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sortable:true, //则可以点击排序 order:'DESC' //点击排序的方式 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 // sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 // sortOrder:'DESC' //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 }) });
order string 点击排序的默认,ASC 或 DESC,默认 undefined。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sortable:true, //则可以点击排序 order:'DESC' //点击排序的方式 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 // sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 // sortOrder:'DESC' //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 }) });
sorter Function 自定义排序,接受 a,b 两个值。注意自定义排序remoteSort要设置为false
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 sortName:'date', //设置哪些列可以进行排序。默认为 null。值为field的值也就是可以排序的字段,这个值会发送到数据库 sortOrder:'DESC', //设置列排序的顺序,ASC 和 DESC,默认是 ASC。这个值会发送到数据库 queryParams:{ //设置请求远程数据发送的额外数据 id:1 }, remoteSort:false //设置服务器对数据进行排序。默认为 true。false则不通过服务器排序 }) });
四、样式设置
DataGrid 属性,扩展自 Panel 面板
striped boolean 是否显示斑马线效果。默认为 false。也就是隔一行显示一个淡灰色背景
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 striped:true //是否显示斑马线效果。默认为 false。也就是隔一行显示一个淡灰色背景 }) });
nowrap boolean 是否在一行显示所有数据。默认为 true。也就是文字受到挤压是否换行
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 nowrap:false //是否在一行显示所有数据。默认为 true。 }) });
fitColumns boolean 是否自动展开或收缩,以达到自适应。默认为 false。也就是是否自适应面板
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 fitColumns:true //也就是是否自适应面板 }) });
data array,object 手工数据加载。默认为 null。前提是要阻止掉服务器加载
$(function () { $('#box').datagrid({ width: 400, //设置宽度 // url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 data:[{ user:'手工用户', email:'手工邮件', date:'2014-12-8' }] }) });
loadMsg string 从远程加载数据显示的提示信息。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 loadMsg:'数据加载中' }) });
rownumbers boolean 设置 true,显示一个行号。默认为 false。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 rownumbers:true //显示一个行号。默认为 false。 }) });
singleSelect boolean 设置 true,只能选定一行。默认为 false。也就是点击后改变背景颜色只能选定一行
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 singleSelect:true //只能选定一行。默认为 false。 }) });
showHeader boolean 是否显示行头,默认为 true。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 showHeader:false //是否显示行头,默认为 true。 }) });
showFooter boolean 是否显示行尾,默认为 false。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 showFooter:true //是否显示行尾,默认为 false。 }) });
scrollbarSize number 滚动条所占的宽度或高度。默认为18。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 scrollbarSize:30 //滚动条所占的宽度或高度。默认为18。 }) });
rowStyler function 带两个参数,index 索引,row 对象,可以通过 return 返回选定行的样式。可以修改指定行的样式
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 // width: 200, }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 rowStyler:function (index,row) { //row接收整个数据对象 if (row.user == '樱桃小丸子'){ //这里返回的也可以是CSS的class名称 alert(index); return 'background-color:orange'; } } }) });
列属性,在 columns 里设置的属性
align string 对齐列数据。有 left,center,right 三种。默认为 undefined。设置标题和内容对齐方式
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 align:'center' }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 }) });
halign string 对齐标题。有 left,center,right 三种。默认为undefined。只设置标题对齐方式
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 halign:'center' //只设置标题对齐方式 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 }) });
resizable boolean 设置 true,则允许改变大小。是否允许改变大小
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 resizable:false //是否允许改变大小 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 }) });
fixed boolean 设置 true,则阻止自适应。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 fixed:true //设置 true,则阻止自适应。 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 }) });
hidden boolean 设置 true,则隐藏列。
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 hidden:true //设置 true,则隐藏列。 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 sorter:function (a,b) { alert(a+b); //ad得到第一个日期,b得到第二个日期,以此循环,可以量上一个日期和下一个日期做判断来排序 } } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 }) });
formatter function 单元格格式化函数,接受三个参数:value 值,row对象,index 索引。设置数据
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 formatter:function (value,row,index) { //value得到数据内容,row得到整个表格数据对象,index索引 return '('+value+')'; } }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 }) });
styler function 单元格样式设定,接受三个参数:value 值,row对象,index 索引。设置单元格
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 styler:function (value,row,index) { //value得到数据内容,row得到整个表格数据对象,index索引 if (value == '蜡笔小新'){ return 'background-color:orange'; } } }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 }) });
五,自适应填充表格布满
$(function () { $('#box').datagrid({ width: 400, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width:100 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 width:100 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 width:100 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 fitColumns:true, //设置表格自适应 scrollbarSize:0 //滚动条所占的宽度或高度。默认为18。 }) });
六,查询功能
DataGrid 属性,扩展自 Panel 面板
toolbar Array,selector顶部工具栏的 DataGrid 面板。可能的值:1) 一 个 数 组 , 每 个 工 具 属 性 都 和linkbutton 一样。2) 选择器指定的工具栏。toolbar属性:将指定区块添加成数据表格工具栏
load param加载和显示第一页的所有行。如果指定了'param',它将取代'queryParams'属性。通常可以通过传递一些参数执行一次查询,通过调用这个方法从服务器加载新数据。load方法:提交查询数据
html
<table id="box"></table> <div id="tb"> <div> <a id="tianjia" href="#">添加</a> <a id="xiougai" href="#">修改</a> <a id="shanchu" href="#">删除</a> </div> <div id="gjl2"> 查询帐号:<input class="textbox" type="text" name="user"> 创建时间从:<input class="shj1" type="text" name="date_from"> 到:<input class="shj2" type="text" name="date_to"> <a class="chx" href="#">查询</a> </div> </div>
css
#tb{ padding:5px; } #gjl2{ padding: 5px; } .textbox { height: 20px; margin: 0; padding: 0 2px; box-sizing: content-box; } .chx{ margin: 0 0 0 20px; }
js
$(function () { //将table标签执行数据表格组件方法 $('#box').datagrid({ width: 800, //设置宽度 url : 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width:100 }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 width:100 }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 width:100 } ]], pagination:true, //组件底部显示分页工具栏 pageNumber:1, //设置分页时初始化页码 pageSize:3, //设置分页时设置每页多少条 pageList:[3,6,9], //设置可选每页显示条数 fitColumns:true, //设置表格自适应 scrollbarSize:0, //滚动条所占的宽度或高度。默认为18。 toolbar:'#tb' //引入id为tb的区块工具栏 }); //数据表格工具栏1 $('#tianjia').linkbutton({ //将工具栏里的添加执行按钮方法 iconCls:'icon-add', //设置图标 plain:true //按钮扁平化 }); $('#xiougai').linkbutton({ //将工具栏里的修改执行按钮方法 iconCls:'icon-edit', //设置图标 plain:true //按钮扁平化 }); $('#shanchu').linkbutton({ //将工具栏里的删除执行按钮方法 iconCls:'icon-remove', //设置图标 plain:true //按钮扁平化 }); //数据表格工具栏2 $('.shj1').datebox(); //查询日期输入框 $('.shj2').datebox(); //查询日期输入框 $('.chx').linkbutton({ //查询按钮 iconCls:"icon-search" }); //查询功能 $('.chx').click(function () { //点击查询后执行obj对象里的search方法 obj.search(); }); var obj = { //obj对象 search: function () { $('#box').datagrid('load',{ //执行数据表格的load方法提交数据 user : $.trim($('input[name="user"]').val()), //获取查询用户 date_from : $('input[name="date_from"]').val(), //获取查询起始时间 date_to : $('input[name="date_to"]').val(), //获取查询结束时间 }); } }; });
七,新增功能
DataGrid 属性,扩展自 Panel 面板
editors object 定义在编辑行的时候使用的编辑器。
列属性,在 columns 里设置的属性
editor string,object指明编辑类型。当字符串指明编辑类型的时候,对象包含两个属性:type : 字 符 串 , 可 使 用 的 类 型 有 :text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree。options:对象,object,该编辑器属性对应于编辑类型。
Editor(编辑器)
init container, options 初始化编辑器并返回目标对象。
destroy target 如果有必要销毁编辑器。
getValue target 从编辑器中获取值。
setValue target , value 向编辑器中写入值。
resize target , width 如果有必要调整编辑器的大小。
DataGrid 方法
appendRow row 追加一个新行。新行将被添加到最后的位置。
$('#box').datagrid('appendRow',{ user:'林贵秀', email:'729088188@qq.com', date:'2017-4-12' });
insertRow row插入一个新行,参数包括一下属性:index:要插入的行索引,如果该索引值未定义,则追加新行。row:行数据。
beginEdit index 开始编辑行。
endEdit index 结束编辑行。
rejectChanges none回 滚 所 有 从 创 建 或 上 一 次 调 用acceptChanges 函数后更改的数据。
DataGrid 事件
onAfterEdit rowIndex,rowData,changes在用户完成编辑一行的时候触发,参数包括:rowIndex:编辑行的索引,索引从 0 开始。rowData:对应于完成编辑的行的记录。changes:更改后的字段(键)/值对。
$(function () { //将数据表格的列属性,在 columns 里设置的属性editor扩展一个type属性值datetimebox也就是日期输入框带时分秒 $.extend($.fn.datagrid.defaults.editors, { datetimebox: { init: function (container, options) { var input = $('<input type="text">').appendTo(container); options.editable = false; input.datetimebox(options); return input; }, getValue: function (target) { return $(target).datetimebox('getValue'); }, setValue: function (target, value) { $(target).datetimebox('setValue', value); }, resize: function (target, width) { $(target).datetimebox('resize', width); }, destroy: function (target) { $(target).datetimebox('destroy'); }, } }); //将table标签执行数据表格组件方法 $('#box').datagrid({ width: 800, //设置宽度 url: 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width: 100, editor: { type: 'validatebox', options: { required: true } } }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 width: 100, editor: { type: 'validatebox', options: { required: true, validType: 'email' } } }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 width: 100, editor: { type: 'datetimebox', options: { required: true, } } } ]], pagination: true, //组件底部显示分页工具栏 pageNumber: 1, //设置分页时初始化页码 pageSize: 3, //设置分页时设置每页多少条 pageList: [3, 6, 9], //设置可选每页显示条数 fitColumns: true, //设置表格自适应 scrollbarSize: 0, //滚动条所占的宽度或高度。默认为18。 toolbar: '#tb', //引入id为tb的区块工具栏 // 第五步 onAfterEdit : function (rowIndex, rowData, changes) { //在用户完成编辑一行的时候触发 $('#baoc,#qxiao').hide(); obj.panduan = false; $.each(rowData, function (attr, value){ //在这里就可以通过Ajax向数据库添加数据,rowData接收的添加数据的对象 alert(attr + ':' + value); }); } }); //数据表格工具栏1 $('#tianjia').linkbutton({ //将工具栏里的添加执行按钮方法 iconCls: 'icon-add', //设置图标 plain: true //按钮扁平化 }); $('#xiougai').linkbutton({ //将工具栏里的修改执行按钮方法 iconCls: 'icon-edit', //设置图标 plain: true //按钮扁平化 }); $('#shanchu').linkbutton({ //将工具栏里的删除执行按钮方法 iconCls: 'icon-remove', //设置图标 plain: true //按钮扁平化 }); $('#baoc').linkbutton({ //将工具栏里的保存执行按钮方法 iconCls: 'icon-save', //设置图标 plain: true //按钮扁平化 }).css('display', 'none'); $('#qxiao').linkbutton({ //将工具栏里的取消执行按钮方法 iconCls: 'icon-redo', //设置图标 plain: true //按钮扁平化 }).css('display', 'none'); //数据表格工具栏2 $('.shj1').datebox(); //查询日期输入框 $('.shj2').datebox(); //查询日期输入框 $('.chx').linkbutton({ //查询按钮 iconCls: "icon-search" }); //查询功能 $('.chx').click(function () { //点击查询后执行obj对象里的search方法 obj.search(); }); //添加 第一步 $('#tianjia').click(function () { //点击添加按钮执行obj对象里的tianjia方法 obj.tianjia(); }); //保存 第三步 $('#baoc').click(function () { //点击保存按钮执行obj对象里的baoc方法 obj.baoc(); }); //取消 第六步 $('#qxiao').click(function () { //点击取消按钮执行obj对象里的qxiao方法 obj.qxiao(); }); var obj = { //obj对象 panduan: false, //查询 search: function () { if (!this.panduan) { $('#box').datagrid('load', { //执行数据表格的load方法提交数据 user: $.trim($('input[name="user"]').val()), //获取查询用户 date_from: $('input[name="date_from"]').val(), //获取查询起始时间 date_to: $('input[name="date_to"]').val(), //获取查询结束时间 }); } }, //添加 第二步 tianjia: function () { $('#baoc,#qxiao').show(); if (!this.panduan) { $('#box').datagrid('insertRow', { //向数据表格插入一行 index: 0, //插入位置第0个索引,也就是第一条 row: {} }); $('#box').datagrid('beginEdit', 0); //开始编辑 this.panduan = true; //调整为true防止重复添加 } }, //保存 第四步 baoc: function () { $('#box').datagrid('endEdit', 0); //结束编辑 }, //取消 第七步 qxiao: function () { $('#baoc,#qxiao').hide(); //隐藏保存取消按钮 this.panduan = false; $('#box').datagrid('rejectChanges'); //回 滚 所 有 从 创 建 或 上 一 次 调 用acceptChanges 函数后更改的数据。 } }; });
八,修改删除功能
列属性,在 columns 里设置的属性
checkbox boolean 如果为 true,则显示复选框。该复选框列固定宽度。将一列表格变成多选框
DataGrid 方法
getSelections none返回所有被选中的行数组对象,当没有记录被选中的时候将返回一个空数组。
getRowIndex row 获取到当前行的索引。
unselectRow index 取消指定选择的行。
DataGrid 事件
onDblClickRow rowIndex,rowData在用户双击一行的时候触发,参数包括:rowIndex:点击的行的索引值,该索引值从 0开始。rowData:对应于点击行的记录。
$(function () { //将数据表格的列属性,在 columns 里设置的属性editor扩展一个type属性值datetimebox也就是日期输入框带时分秒 $.extend($.fn.datagrid.defaults.editors, { datetimebox: { init: function (container, options) { var input = $('<input type="text">').appendTo(container); options.editable = false; input.datetimebox(options); return input; }, getValue: function (target) { return $(target).datetimebox('getValue'); }, setValue: function (target, value) { $(target).datetimebox('setValue', value); }, resize: function (target, width) { $(target).datetimebox('resize', width); }, destroy: function (target) { $(target).datetimebox('destroy'); }, } }); //将table标签执行数据表格组件方法 $('#box').datagrid({ width: 800, //设置宽度 url: 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { //第三步,设置id表格列 field : 'id', title : '编号', width : 100, checkbox : true, //将id列变成多选框 }, { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width: 100, editor: { type: 'validatebox', options: { required: true } } }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 width: 100, editor: { type: 'validatebox', options: { required: true, validType: 'email' } } }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 width: 100, editor: { type: 'datetimebox', options: { required: true, } } } ]], pagination: true, //组件底部显示分页工具栏 pageNumber: 1, //设置分页时初始化页码 pageSize: 3, //设置分页时设置每页多少条 pageList: [3, 6, 9], //设置可选每页显示条数 fitColumns: true, //设置表格自适应 scrollbarSize: 0, //滚动条所占的宽度或高度。默认为18。 toolbar: '#tb', //引入id为tb的区块工具栏 // singleSelect : true, //只允许选择一行 //编辑完保存执行 onAfterEdit : function (rowIndex, rowData, changes) { //在用户完成编辑一行的时候触发 $('#baoc,#qxiao').hide(); obj.panduan = undefined; $.each(rowData, function (attr, value){ //在这里就可以通过Ajax向数据库添加数据,rowData接收的添加数据的对象 alert(attr + ':' + value); }); }, //双击一行触发 第一步双击修改 onDblClickRow: function (rowIndex, rowData) { if (obj.panduan != undefined){ $('#box').datagrid('endEdit', obj.panduan); //结束编辑 } if (obj.panduan == undefined) { $('#baoc,#qxiao').show(); //显示保存和取消按钮 $('#box').datagrid('beginEdit', rowIndex); //获取双击的行索引开始编辑 obj.panduan = rowIndex; } } }); //数据表格工具栏1 $('#tianjia').linkbutton({ //将工具栏里的添加执行按钮方法 iconCls: 'icon-add', //设置图标 plain: true //按钮扁平化 }); $('#xiougai').linkbutton({ //将工具栏里的修改执行按钮方法 iconCls: 'icon-edit', //设置图标 plain: true //按钮扁平化 }); $('#shanchu').linkbutton({ //将工具栏里的删除执行按钮方法 iconCls: 'icon-remove', //设置图标 plain: true //按钮扁平化 }); $('#baoc').linkbutton({ //将工具栏里的保存执行按钮方法 iconCls: 'icon-save', //设置图标 plain: true //按钮扁平化 }).css('display', 'none'); $('#qxiao').linkbutton({ //将工具栏里的取消执行按钮方法 iconCls: 'icon-redo', //设置图标 plain: true //按钮扁平化 }).css('display', 'none'); //数据表格工具栏2 $('.shj1').datebox(); //查询日期输入框 $('.shj2').datebox(); //查询日期输入框 $('.chx').linkbutton({ //查询按钮 iconCls: "icon-search" }); //查询功能 $('.chx').click(function () { //点击查询后执行obj对象里的search方法 obj.search(); }); //添加 $('#tianjia').click(function () { //点击添加按钮执行obj对象里的tianjia方法 obj.tianjia(); }); //保存 $('#baoc').click(function () { //点击保存按钮执行obj对象里的baoc方法 obj.baoc(); }); //取消 $('#qxiao').click(function () { //点击取消按钮执行obj对象里的qxiao方法 obj.qxiao(); }); //修改 $('#xiougai').click(function () { //点击修改按钮执行obj对象里的xiougai方法 obj.xiougai(); }); $('#shanchu').click(function () { //点击删除按钮执行obj对象里的shanchu方法 obj.shanchu(); }); var obj = { //obj对象 panduan: undefined, //查询 search: function () { if (this.panduan == undefined) { $('#box').datagrid('load', { //执行数据表格的load方法提交数据 user: $.trim($('input[name="user"]').val()), //获取查询用户 date_from: $('input[name="date_from"]').val(), //获取查询起始时间 date_to: $('input[name="date_to"]').val(), //获取查询结束时间 }); } }, //添加 tianjia: function () { $('#baoc,#qxiao').show(); if (this.panduan == undefined) { $('#box').datagrid('insertRow', { //向数据表格插入一行 index: 0, //插入位置第0个索引,也就是第一条 row: {} }); $('#box').datagrid('beginEdit', 0); //开始编辑 this.panduan = 0; //调整为true防止重复添加 } }, //保存 baoc: function () { $('#box').datagrid('endEdit', this.panduan); //结束编辑 }, //取消 qxiao: function () { $('#baoc,#qxiao').hide(); //隐藏保存取消按钮 this.panduan = undefined; $('#box').datagrid('rejectChanges'); //回 滚 所 有 从 创 建 或 上 一 次 调 用acceptChanges 函数后更改的数据。 }, //修改 第二步选择一行点击修改按钮修改 xiougai:function () { var rows = $('#box').datagrid('getSelections'); //返回所有被选中的行数组对象,当没有记录被选中的时候将返回一个空数组。 if (rows.length == 1) { if (this.panduan != undefined) { $('#box').datagrid('endEdit', this.panduan); //结束编辑 } if (this.panduan == undefined) { var index = $('#box').datagrid('getRowIndex', rows[0]); //获取到当前行的索引 $('#baoc,#qxiao').show(); //显示保存和取消按钮 $('#box').datagrid('beginEdit', index); //获取双击的行索引开始编辑 this.panduan = index; $('#box').datagrid('unselectRow', index); //取消指定选择的行 } }else { $.messager.alert('警告', '请选择一行修改!', 'warning'); } }, //第四步 删除 shanchu:function () { var rows = $('#box').datagrid('getSelections'); //返回所有被选中的行数组对象,当没有记录被选中的时候将返回一个空数组。 if (rows.length > 0){ $.messager.confirm('确定操作', '您正在要删除所选的记录吗?', function (flag) { if (flag) { //如果用户点击了确定 var ids = []; for (var i = 0; i < rows.length; i ++) { //循环出数组对象 ids.push(rows[i].id); //将对象里的id添加到数组 } //在这里可以将要删除的id发送到数据库 alert(ids.join(',')); } }); }else { $.messager.alert('提示', '请选择要删除的记录!', 'info'); } } }; });
九,添加,修改,删除,后台交互
load param 加载和显示第一页的所有行,即刷新当前页。
loading none 显示载入状态。
loaded none 隐藏载入状态。
unselectAll none 取消所有当前页中的所有行。
getChanges type从上一次的提交获取改变的所有行。类型参数指明用哪些类型改变的行,可以使用的值有:inserted,deleted,updated 等。当类型参数未配置的时候返回所有改变的行。获取那种类型执行的数据
$(function () { //将数据表格的列属性,在 columns 里设置的属性editor扩展一个type属性值datetimebox也就是日期输入框带时分秒 $.extend($.fn.datagrid.defaults.editors, { datetimebox: { init: function (container, options) { var input = $('<input type="text">').appendTo(container); options.editable = false; input.datetimebox(options); return input; }, getValue: function (target) { return $(target).datetimebox('getValue'); }, setValue: function (target, value) { $(target).datetimebox('setValue', value); }, resize: function (target, width) { $(target).datetimebox('resize', width); }, destroy: function (target) { $(target).datetimebox('destroy'); }, } }); //将table标签执行数据表格组件方法 $('#box').datagrid({ width: 800, //设置宽度 url: 'content.json', //远程加载数据地址 title: '用户列表', //面板属性,添加标题 iconCls: 'icon-search', //添加图标 columns: [[ //设置要显示表格数据 { //第三步,设置id表格列 field : 'id', title : '编号', width : 100, checkbox : true, //将id列变成多选框 }, { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width: 100, editor: { type: 'validatebox', options: { required: true } } }, { field: 'email', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '邮件', //title,定义数据的标题 width: 100, editor: { type: 'validatebox', options: { required: true, validType: 'email' } } }, { field: 'date', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '注册时间', //title,定义数据的标题 width: 100, editor: { type: 'datetimebox', options: { required: true, } } } ]], pagination: true, //组件底部显示分页工具栏 pageNumber: 1, //设置分页时初始化页码 pageSize: 3, //设置分页时设置每页多少条 pageList: [3, 6, 9], //设置可选每页显示条数 fitColumns: true, //设置表格自适应 scrollbarSize: 0, //滚动条所占的宽度或高度。默认为18。 toolbar: '#tb', //引入id为tb的区块工具栏 // singleSelect : true, //只允许选择一行 //编辑完保存执行 onAfterEdit : function (rowIndex, rowData, changes) { //在用户完成编辑一行的时候触发 $('#baoc,#qxiao').hide(); //添加数据和修改数据后台交互 var inserted = $('#box').datagrid('getChanges', 'inserted'); //获取添加数据 var updated = $('#box').datagrid('getChanges', 'updated'); //获取修改数据 var url = ''; var info = ''; //新增用户 if (inserted.length > 0) { url = 'add.php'; info = '新增'; } //修改用户 if (updated.length > 0) { url = 'update.php'; info = '修改'; } $.ajax({ type : 'POST', url : url, data : { row : rowData //将数据对象发送到服务器 }, beforeSend : function () { //提交前触发 $('#box').datagrid('loading'); //显示载入状态 }, success : function (data) { //提交后触发 if (data) { //data接收数据库响应条数 $('#box').datagrid('loaded'); //隐藏载入状态 $('#box').datagrid('load'); //刷新当前页面 $('#box').datagrid('unselectAll'); //取消所有行选择 $.messager.show({ //成功后提示信息 title : '提示', msg : data + '个用户被' + info + '成功!' }); obj.panduan = undefined; //将obj对象里的panduan设置为undefined } } }); }, //双击一行触发 第一步双击修改 onDblClickRow: function (rowIndex, rowData) { if (obj.panduan != undefined){ $('#box').datagrid('endEdit', obj.panduan); //结束编辑 } if (obj.panduan == undefined) { $('#baoc,#qxiao').show(); //显示保存和取消按钮 $('#box').datagrid('beginEdit', rowIndex); //获取双击的行索引开始编辑 obj.panduan = rowIndex; } } }); //数据表格工具栏1 $('#tianjia').linkbutton({ //将工具栏里的添加执行按钮方法 iconCls: 'icon-add', //设置图标 plain: true //按钮扁平化 }); $('#xiougai').linkbutton({ //将工具栏里的修改执行按钮方法 iconCls: 'icon-edit', //设置图标 plain: true //按钮扁平化 }); $('#shanchu').linkbutton({ //将工具栏里的删除执行按钮方法 iconCls: 'icon-remove', //设置图标 plain: true //按钮扁平化 }); $('#baoc').linkbutton({ //将工具栏里的保存执行按钮方法 iconCls: 'icon-save', //设置图标 plain: true //按钮扁平化 }).css('display', 'none'); $('#qxiao').linkbutton({ //将工具栏里的取消执行按钮方法 iconCls: 'icon-redo', //设置图标 plain: true //按钮扁平化 }).css('display', 'none'); //数据表格工具栏2 $('.shj1').datebox(); //查询日期输入框 $('.shj2').datebox(); //查询日期输入框 $('.chx').linkbutton({ //查询按钮 iconCls: "icon-search" }); //查询功能 $('.chx').click(function () { //点击查询后执行obj对象里的search方法 obj.search(); }); //添加 $('#tianjia').click(function () { //点击添加按钮执行obj对象里的tianjia方法 obj.tianjia(); }); //保存 $('#baoc').click(function () { //点击保存按钮执行obj对象里的baoc方法 obj.baoc(); }); //取消 $('#qxiao').click(function () { //点击取消按钮执行obj对象里的qxiao方法 obj.qxiao(); }); //修改 $('#xiougai').click(function () { //点击修改按钮执行obj对象里的xiougai方法 obj.xiougai(); }); $('#shanchu').click(function () { //点击删除按钮执行obj对象里的shanchu方法 obj.shanchu(); }); var obj = { //obj对象 panduan: undefined, //查询 search: function () { if (this.panduan == undefined) { $('#box').datagrid('load', { //执行数据表格的load方法提交数据 user: $.trim($('input[name="user"]').val()), //获取查询用户 date_from: $('input[name="date_from"]').val(), //获取查询起始时间 date_to: $('input[name="date_to"]').val(), //获取查询结束时间 }); } }, //添加 tianjia: function () { $('#baoc,#qxiao').show(); if (this.panduan == undefined) { $('#box').datagrid('insertRow', { //向数据表格插入一行 index: 0, //插入位置第0个索引,也就是第一条 row: {} }); $('#box').datagrid('beginEdit', 0); //开始编辑 this.panduan = 0; //调整为true防止重复添加 } }, //保存 baoc: function () { $('#box').datagrid('endEdit', this.panduan); //结束编辑 }, //取消 qxiao: function () { $('#baoc,#qxiao').hide(); //隐藏保存取消按钮 this.panduan = undefined; $('#box').datagrid('rejectChanges'); //回 滚 所 有 从 创 建 或 上 一 次 调 用acceptChanges 函数后更改的数据。 }, //修改 第二步选择一行点击修改按钮修改 xiougai:function () { var rows = $('#box').datagrid('getSelections'); //返回所有被选中的行数组对象,当没有记录被选中的时候将返回一个空数组。 if (rows.length == 1) { if (this.panduan != undefined) { $('#box').datagrid('endEdit', this.panduan); //结束编辑 } if (this.panduan == undefined) { var index = $('#box').datagrid('getRowIndex', rows[0]); //获取到当前行的索引 $('#baoc,#qxiao').show(); //显示保存和取消按钮 $('#box').datagrid('beginEdit', index); //获取双击的行索引开始编辑 this.panduan = index; $('#box').datagrid('unselectRow', index); //取消指定选择的行 } }else { $.messager.alert('警告', '请选择一行修改!', 'warning'); } }, //第四步 删除 shanchu:function () { var rows = $('#box').datagrid('getSelections'); //返回所有被选中的行数组对象,当没有记录被选中的时候将返回一个空数组。 if (rows.length > 0){ $.messager.confirm('确定操作', '您正在要删除所选的记录吗?', function (flag) { if (flag) { //如果用户点击了确定 var ids = []; for (var i = 0; i < rows.length; i ++) { //循环出数组对象 ids.push(rows[i].id); //将对象里的id添加到数组 } //在这里可以将要删除的id发送到数据库 // alert(ids.join(',')); //删除后台交互 $.ajax({ type : 'POST', url : 'delete.php', data : { ids : ids.join(','), }, beforeSend : function () { //提交之前触发 $('#box').datagrid('loading'); //显示载入状态 }, success : function (data) { //提交之后触发,data接收数据库删除影响条数 if (data) { $('#box').datagrid('loaded'); //隐藏载入状态 $('#box').datagrid('load'); //刷新当前页 $('#box').datagrid('unselectAll'); //取消所有选择行 $.messager.show({ //提示框 title : '提示', msg : data + '个用户被删除成功!', //提示删除信息 }); } }, }); } }); }else { $.messager.alert('提示', '请选择要删除的记录!', 'info'); } } }; });
十,其他功能
DataGrid 属性
fitColumns boolean 收缩列的大小,以适应网络的宽度,防止水平滚动。默认值为 false。设置表格自适应
frozenColumns array同列属性,但是这些列将会被冻结在左侧。默认值为 undefined。冻结列要配合fitColumns使用,参数将要冻结的列写入frozenColumns属性
fitColumns: false, //设置表格自适应 frozenColumns:[[ { //第三步,设置id表格列 field : 'id', title : '编号', width : 100, checkbox : true, //将id列变成多选框 }, { field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width: 100, editor: { type: 'validatebox', options: { required: true } } } ]],
DataGrid 列属性
formatter function 单元格格式化函数,带三个参数:value,rowData,rowIndex。
{ field: 'user', //field,对应远程JSON 数据里的对象属性,也就是数据库字段 title: '帐号', //title,定义数据的标题 width: 100, editor: { type: 'validatebox', options: { required: true } }, formatter:function (value,rowData,rowIndex) { return '('+value+')'; } },
DataGrid 事件
onHeaderContextMenu e, field 在鼠标右击 DataGrid 表格头的时候触发。
pagination: true, //组件底部显示分页工具栏 pageNumber: 1, //设置分页时初始化页码 pageSize: 3, //设置分页时设置每页多少条 pageList: [3, 6, 9], //设置可选每页显示条数 fitColumns: true, //设置表格自适应 scrollbarSize: 0, //滚动条所占的宽度或高度。默认为18。 toolbar: '#tb', //引入id为tb的区块工具栏 onHeaderContextMenu:function (e, field) { //在鼠标右击表格头的时候触发 e.preventDefault(); alert(field); //接收列字段名称 },
onRowContextMenu e,rowIndex,rowData在鼠标右击一行记录的时候触发。
html
右键菜单
<div id="menu" class="easyui-menu" style="width:120px;display:none;"> <div onclick="" iconCls="icon-add">增加</div> <div onclick="" iconCls="icon-remove">删除</div> <div onclick="" iconCls="icon-edit">修改</div> </div>
js
pagination: true, //组件底部显示分页工具栏 pageNumber: 1, //设置分页时初始化页码 pageSize: 3, //设置分页时设置每页多少条 pageList: [3, 6, 9], //设置可选每页显示条数 fitColumns: true, //设置表格自适应 scrollbarSize: 0, //滚动条所占的宽度或高度。默认为18。 toolbar: '#tb', //引入id为tb的区块工具栏 onRowContextMenu: function (e, rowIndex, rowData) { //在鼠标右击一行记录的时候触发 e.preventDefault(); $('#menu').menu('show', { //显示菜单方法 left: e.pageX, top: e.pageY, }); },
十一,剩下的方法和事件
onLoadSuccess data 在数据加载成功的时候触发。
onLoadError none 在载入远程数据产生错误的时候触发。
onBeforeLoad param在载入请求数据数据之前触发,如果返回false 可终止载入数据操作。
onClickRow rowIndex,rowData在用户点击一行的时候触发,参数包括:rowIndex:点击的行的索引值,该索引值从 0 开始。rowData:对应于点击行的记录。
onDblClickRow rowIndex,rowData在用户双击一行的时候触发,参数包括:rowIndex:点击的行的索引值,该索引值从 0 开始。rowData:对应于点击行的记录。
onClickCell rowIndex,field,value在用户点击一个单元格的时候触发。
onDblClickCell rowIndex,field,value在用户双击一个单元格的时候触发。
onSortColumn sort,order在用户排序一列的时候触发,参数包括:sort:排序列字段名称。order:排序列的顺序(ASC 或 DESC)
onResizeColumn field,width 在用户调整列大小的时候触发。
onSelect rowIndex,rowData在用户选择一行的时候触发,参数包括:rowIndex:选择的行的索引值,索引从 0开始。rowData:对应于所选行的记录
onUnselect rowIndex,rowData在用户取消选择一行的时候触发,参数包括:rowIndex:选择的行的索引值,索引从 0开始。rowData:对应于取消选择行的记录。
onSelectAll rows 在用户选择所有行的时候触发。
onUnselectAll rows 在用户取消选择所有行的时候触发。
onCheck rowIndex,rowData在用户勾选一行的时候触发,参数包括:rowIndex:选中的行索引,索引从 0 开始。rowData:对应于所选行的记录。
onUncheck rowIndex,rowData在用户取消勾选一行的时候触发,参数包括:rowIndex:选中的行索引,索引从 0 开始。rowData:对应于取消勾选行的记录。
onCheckAll rows 在用户勾选所有行的时候触发。
onUncheckAll rows 在用户取消勾选所有行的时候触发。
onBeforeEdit rowIndex,rowData在用户开始编辑一行的时候触发,参数包括:rowIndex:编辑行的索引,索引从 0 开始。rowData:对应于编辑行的记录。
onAfterEdit rowIndex,rowData,changes在用户完成编辑一行的时候触发,参数包括:rowIndex:编辑行的索引,索引从 0 开始。rowData:对应于完成编辑的行的记录。changes:更改后的字段(键)/值对。
onCancelEdit rowIndex,rowData在用户取消编辑一行的时候触发,参数包括:rowIndex:编辑行的索引,索引从 0 开始。rowData:对应于编辑行的记录。
//部分事件 onClickRow: function (rowIndex, rowData) { alert('单击一行时触发!'); }, onClickCell: function (rowIndex, field, value) { alert('单击一个单元格时触发!'); }, onUnselect: function (rowIndex, rowData) { alert('取消选定一行时触发!'); }, onCheck: function (rowIndex, rowData) { alert('勾选一行时触发!'); }, onCancelEdit: function (rowIndex, rowData) { alert('取消编辑一行时触发!'); }, onSortColumn: function (sort, order) { alert('排序时触发!') },
DataGrid 方法
options none 返回属性对象。
getPager none 返回页面对象。
getPanel none 返回面板对象。
getColumnFields frozen返回列字段。如果设置了 frozen 属性为true,将返回固定列的字段名。var opts =$('#dg').datagrid('getColumnFields'); // 获取解冻列var opts =$('#dg').datagrid('getColumnFields', true); // 获取冻结列
getColumnOption field 返回指定列属性。
resize param 做调整和布局。
load param 加载和显示第一页的所有行。如果指定了'param',它将取代'queryParams'属性。通常可以通过传递一些参数执行一次查询,通过调用这个方法从服务器加载新数据。
reload param重载行。等同于'load'方法,但是它将保持在当前页。
reloadFooter footer 重载页脚行。
loading none 显示载入状态。
loaded none 隐藏载入状态。
fitColumns none使列自动展开/收缩到合适的 DataGrid宽度。
fixColumnSize field 固定列大小。如果'field'参数未配置,所有列大小将都是固定的。
fixRowHeight index 固定指定列高度。如果'index'参数未配置,所有行高度都是固定的。
freezeRow index 冻结指定行,当 DataGrid 表格向下滚动的时候始终保持被冻结的行显示在顶部。
autoSizeColumn field 自动调整列宽度以适应内容。
loadData data 加载本地数据,旧的行将被移除。
getData none 返回加载完毕后的数据。
getRows none 返回当前页的所有行。
getFooterRows none 返回页脚行。
getRowIndex row返回指定行的索引号,该行的参数可以是一行记录或一个 ID 字段值。
getChecked none 在复选框呗选中的时候返回所有行。
getSelected none返回第一个被选中的行或如果没有选中的行则返回 null。
getSelections none返回所有被选中的行,当没有记录被选中的时候将返回一个空数组。
clearSelections none 清除所有选择的行。
clearChecked none 清除所有勾选的行。
scrollTo index 滚动到指定的行。
highlightRow index 高亮一行。
selectAll none 选择当前页中所有的行。
unselectAll none 取消选择所有当前页中所有的行。
selectRow index 选择一行,行索引从 0 开始。
selectRecord idValue 通过 ID 值参数选择一行。
unselectRow index 取消选择一行。
checkAll none 勾选当前页中的所有行。
uncheckAll none 取消勾选当前页中的所有行。
checkRow index 勾选一行,行索引从 0 开始。
uncheckRow index 取消勾选一行,行索引从 0 开始。
beginEdit index 开始编辑行。
endEdit index 结束编辑行。
cancelEdit index 取消编辑行。
getEditors index获取指定行的编辑器。每个编辑器都有以下属性:actions:编辑器可以执行的动作,同编辑器定义。target:目标编辑器的 jQuery 对象。
field:字段名称。type:编辑器类型,比如:'text','combobox','datebox'等。
getEditor options获取指定编辑器,options 包含 2 个属性:index:行索引。field:字段名称。
refreshRow index 刷新行。
validateRow index 验证指定的行,当验证有效的时候返回true。
updateRow param更新指定行,参数包含下列属性:index:执行更新操作的行索引。row:更新行的新数据。
appendRow row追加一个新行。新行将被添加到最后的位置。
insertRow param插入一个新行,参数包括一下属性:index:要插入的行索引,如果该索引值未定义,则追加新行。row:行数据。
deleteRow index 删除行。
getChanges type从上一次的提交获取改变的所有行。类型参数指明用哪些类型改变的行,可以使用的值有:inserted,deleted,updated等。当类型参数未配置的时候返回所有改变的行。
acceptChanges none提交所有从加载或者上一次调用acceptChanges 函数后更改的数据。
rejectChanges none回滚所有从创建或者上一次调用acceptChanges 函数后更改的数据。
mergeCells options合并单元格,options 包含以下属性:index:行索引。field:字段名称。rowspan:合并的行数。colspan:合并的列数。
showColumn field 显示指定的列。
hideColumn field 隐藏指定的列。
//部分方法 $('#box').datagrid('deleteRow', 0); $('#box').datagrid('checkAll'); $('#box').datagrid('highlightRow', 0); $('#box').datagrid('mergeCells', { index: 0, field: 'user', rowspan: 2, }); $('#box').datagrid('mergeCells', { index: 0, field: 'user', colspan: 2, });
目录
二.分页和排序
DataGrid 属性,扩展自 Panel 面板
三.排序功能
四、样式设置
DataGrid 属性,扩展自 Panel 面板
六,查询功能
DataGrid 属性,扩展自 Panel 面板
七,新增功能
八,修改删除功能
九,添加,修改,删除,后台交互
十,其他功能
十一,剩下的方法和事件,见十一