将静态HTML渲染为datagrid样式:

<!-- 方式一:将静态HTML渲染为datagrid样式 --><table class="easyui-datagrid"><thead><tr><th data-options="field:'id'">编号</th><th data-options="field:'name'">姓名</th><th data-options="field:'age'">年龄</th></tr></thead><tbody><tr><td>001</td><td>小明</td><td>90</td></tr><tr><td>002</td><td>老王</td><td>3</td></tr></tbody></table>

发送ajax请求获取json数据创建datagrid

<!-- 方式二:发送ajax请求获取json数据创建datagrid --><table data-options="url:'${pageContext.request.contextPath }/json/datagrid_data.json'" class="easyui-datagrid"><thead><tr><th data-options="field:'id'">编号</th><th data-options="field:'name'">姓名</th><th data-options="field:'age'">年龄</th></tr></thead></table>

使用easyUI提供的API创建datagrid:

 <div><table id="mytable"></table></div>
<!-- 方式三:使用easyUI提供的API创建datagrid --><script type="text/javascript">$(function(){//页面加载完成后,创建数据表格datagrid$("#mytable").datagrid({//定义标题行所有的列columns:[[{title:'编号',field:'id',checkbox:true},{title:'姓名',field:'name'},{title:'年龄',field:'age'},{title:'地址',field:'address'}]],//指定数据表格发送ajax请求的地址url:'${pageContext.request.contextPath }/json/datagrid_data.json',rownumbers:true,singleSelect:true,//定义工具栏toolbar:[{text:'添加',iconCls:'icon-add',//为按钮绑定单击事件handler:function(){alert('add...');}},{text:'删除',iconCls:'icon-remove'},{text:'修改',iconCls:'icon-edit'},{text:'查询',iconCls:'icon-search'}],//显示分页条pagination:true});});</script>

如果数据表格中使用了分页条,要求服务端响应的json变为:

请求参数:page:1 当前第几页      rows:10  每页多少条。

响应:为上面的json数据,total 共多少条信息,rows当前页的信息集合。

介绍完毕,下面是扩展,会实际举例说明:

举例:扩展工具栏,点击事件,数据回显,带查询条件分页等;

先创建table:

 <div region="center" border="false"><table id="grid"></table></div>

页面加载完成后,根据id绑定成为datagrid:

     $('#grid').datagrid( {fit : true,border : true,rownumbers : true,striped : false,pageList: [10],pagination : true,toolbar : toolbar,url : "demoAction_pageQuery.action",idField : 'id',columns : columns,//为数据表格绑定双击事件onDblClickRow : doDblClickRow});

定义列:

 // 定义列var columns = [ [ {field : 'id',checkbox : true,},{field : 'name',title : '姓名',width : 120,align : 'center'}, {field : 'telephone',title : '手机号',width : 120,align : 'center'}, {field : 'deltag',title : '是否删除',width : 120,align : 'center',formatter : function(data,row, index){if(data=="0"){return "正常使用"}else{return "已删除";}}} ] ];

工具栏:

//工具栏var toolbar = [ {id : 'button-view', text : '查询',iconCls : 'icon-search',handler : doView}, {id : 'button-add',text : '增加',iconCls : 'icon-add',handler : doAdd}, {id : 'button-delete',text : '删除',iconCls : 'icon-cancel',handler : doDelete},{id : 'button-save',text : '还原',iconCls : 'icon-save',handler : doRestore}];

绑定工具栏事件:

 function doAdd(){//alert("增加...");$('#addStaffWindow').window("open");}

删除按钮点击事件,判断是否选中了数据, 获取当前选中的数据信息:批量获取id属性

 function doDelete(){//获取数据表格中所有选中的行,返回数组对象var rows = $("#grid").datagrid("getSelections");if(rows.length == 0){//没有选中记录,弹出提示$.messager.alert("提示信息","请选择需要删除的信息!","warning");}else{//选中,弹出确认框$.messager.confirm("删除确认","你确定要删除选中的信息吗?",function(r){if(r){var array = new Array();//确定,发送请求//获取所有选中信息的idfor(var i=0;i<rows.length;i++){var data= rows[i];//json对象var id = data.id;array.push(id);}var ids = array.join(",");//1,2,3,4,5location.href = "demoAction_deleteBatch.action?ids="+ids;/**$.post("demoAction_deleteBatch.action",{"ids":ids},function(data){alert(data);});**/}});}}

上面还定义了一个双击事件:这里扩展一下回显

 //数据表格绑定的双击行事件对应的函数function doDblClickRow(rowIndex, rowData){//打开修改窗口$('#editdemoWindow').window("open");//使用form表单对象的load方法回显数据$("#editdemoForm").form("load",rowData);}

扩展:分页查询(带有过滤条件)

datagrid提供的方法:用于重新发送ajax请求,并且可以提交参数

使用:、

第一步:提供一个工具方法,可以将指定的form表单中所有的输入项转为json数据,用于参数提交

 //定义一个工具方法,用于将指定的form表单中所有的输入项转为json数据{key:value,key:value}$.fn.serializeJson=function(){  var serializeObj={};  var array=this.serializeArray();$(array).each(function(){  if(serializeObj[this.name]){  if($.isArray(serializeObj[this.name])){  serializeObj[this.name].push(this.value);  }else{  serializeObj[this.name]=[serializeObj[this.name],this.value];  }  }else{  serializeObj[this.name]=this.value;   }  });  return serializeObj;  };

第二步:为查询窗口中查询按钮绑定事件
注意这里调用的是数据表格的方法,页面并没有刷新。

$("#btn").click(function(){//将指定的form表单中所有的输入项转为json数据{key:value,key:value}var p = $("#searchForm").serializeJson();console.info(p);//调用数据表格的load方法,重新发送一次ajax请求,并且提交参数$("#grid").datagrid("load",p);//关闭查询窗口$("#searchWindow").window("close");});

服务端实现:

1.包装PageBean工具类:封装分页相关的属性,生成get,set方法,在SSH项目底层代码构建文章中,分页查询方法扩展里已实现,参考文章。

2.在BaseDao中扩展通用分页查询方法:在SSH项目底层代码构建文章中,分页查询方法扩展里已实现,参考文章。

第三步后端:修改Action中分页查询方法,这里是多条件的。

 public String pageQuery(){DetachedCriteria dc = pageBean.getDetachedCriteria();//动态添加过滤条件String addresskey = model.getAddresskey();if(StringUtils.isNotBlank(addresskey)){//添加过滤条件,根据地址关键字模糊查询dc.add(Restrictions.like("addresskey", "%"+addresskey+"%"));}Region region = model.getRegion();if(region != null){String province = region.getProvince();String city = region.getCity();String district = region.getDistrict();dc.createAlias("region", "r");if(StringUtils.isNotBlank(province)){//添加过滤条件,根据省份模糊查询-----多表关联查询,使用别名方式实现//参数一:分区对象中关联的区域对象属性名称//参数二:别名,可以任意dc.add(Restrictions.like("r.province", "%"+province+"%"));}if(StringUtils.isNotBlank(city)){//添加过滤条件,根据市模糊查询-----多表关联查询,使用别名方式实现//参数一:分区对象中关联的区域对象属性名称//参数二:别名,可以任意dc.add(Restrictions.like("r.city", "%"+city+"%"));}if(StringUtils.isNotBlank(district)){//添加过滤条件,根据区模糊查询-----多表关联查询,使用别名方式实现//参数一:分区对象中关联的区域对象属性名称//参数二:别名,可以任意dc.add(Restrictions.like("r.district", "%"+district+"%"));}}subareaService.pageQuery(pageBean);this.java2Json(pageBean, new String[]{"currentPage","detachedCriteria","pageSize","decidedzone","subareas"});return NONE;}

扩展:鼠标离焦事件,根据手机号查询数据库回显数据

<td>来电号码:</td>
<td><input type="text" class="easyui-validatebox" name="telephone" required="true" /><script type="text/javascript">$(function(){//页面加载完成后,为手机号输入框绑定离焦事件$("input[name=telephone]").blur(function(){//获取页面输入的手机号var telephone = this.value;//发送ajax请求,请求Action,在Action中远程掉调用crm服务,获取客户信息,用于页面回显$.post('noticebillAction_findCustomerByTelephone.action',{"telephone":telephone},function(data){if(data != null){//查询到了客户信息,可以进行页面回显var customerId = data.id;var customerName = data.name;var address = data.address;$("input[name=customerId]").val(customerId);$("input[name=customerName]").val(customerName);}else{//没有查询到客户信息,不能进行页面回显$("input[name=customerId]").val("");$("input[name=customerName]").val("");}});});});</script>
</td>

扩展方法:datagrid编辑功能使用方式

注意:数据表格编辑功能是以列为单位,通过数据表格中的列属性定区具体那一列具有编辑功能:

开始编辑:

结束编辑:

插入一行数据:

删除一行:

获得指定行对象的索引:

数据表格提供的用于监听结束编辑事件:

实际例子:增删改查,发送ajax请求。

<table id="mytable"></table><!--使用easyUI提供的API创建datagrid --><script type="text/javascript">$(function(){var myIndex = -1;//全局变量,值为正在编辑行的索引//页面加载完成后,创建数据表格datagrid$("#mytable").datagrid({//定义标题行所有的列columns:[[{title:'编号',field:'id',checkbox:true},{width:150,title:'姓名',field:'name',editor:{type:'validatebox',options:{}}},{width:150,title:'年龄',field:'age',editor:{type:'numberbox',options:{}}},{width:150,title:'日期',field:'address',editor:{type:'datebox',options:{}}}]],//指定数据表格发送ajax请求的地址url:'${pageContext.request.contextPath }/json/datagrid_data.json',rownumbers:true,singleSelect:true,//定义工具栏toolbar:[{text:'添加',iconCls:'icon-add',//为按钮绑定单击事件handler:function(){$("#mytable").datagrid("insertRow",{index:0,//在第一行插入数据row:{}//空行});$("#mytable").datagrid("beginEdit",0);myIndex = 0;}},{text:'删除',iconCls:'icon-remove',handler:function(){//获得选中的行对象var rows = $("#mytable").datagrid("getSelections");if(rows.length == 1){var row = rows[0];//获得指定行对象的索引myIndex = $("#mytable").datagrid("getRowIndex",row);}$("#mytable").datagrid("deleteRow",myIndex);//$.post();}},{text:'修改',iconCls:'icon-edit',handler:function(){//获得选中的行对象var rows = $("#mytable").datagrid("getSelections");if(rows.length == 1){var row = rows[0];//获得指定行对象的索引myIndex = $("#mytable").datagrid("getRowIndex",row);}$("#mytable").datagrid("beginEdit",myIndex);}},{text:'保存',iconCls:'icon-save',handler:function(){$("#mytable").datagrid("endEdit",myIndex);}}],//显示分页条pagination:true,pageList:[3,5,7,10],//数据表格提供的用于监听结束编辑事件onAfterEdit:function(index,data,changes){console.info(data);$.post();}});});</script>

datagrid数据表格使用方法相关推荐

  1. (五)EasyUI使用——datagrid数据表格

    DataGrid以表格形式展示数据,并提供了丰富的选择.排序.分组和编辑数据的功能支持.DataGrid的设计用于缩短开发时间,并且使开发人员不需要具备特定的知识.它是轻量级的且功能丰富.单元格合并. ...

  2. Easyui之Datagrid(数据表格)

    Datagrid 前言 1.概念 2.常见使用案例 3.datagrid属性 4.datagrid事件 5.datagrid方法 6.案例演示 7.为什么使用datagrid 总结 前言 今天为大家分 ...

  3. DataGrid( 数据表格) 组件[5]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于 Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination ...

  4. datagrid数据表格当数据为0的时候页面不显示数据

    如下图: datagrid数据表格当数据为0的时候页面不显示数据,为空的表格数据全是0,但是页面无法显示 传递的json数据也是没问题的: 所以实在想不通,为什么easyUI datagrid 不显示 ...

  5. layui删除后刷新表格_layui form表单提交之后重新加载数据表格的方法

    如下图,在我们做高级查询的时候需要重新加载数据表格table.reload(); HTML form表单 菜单:  JS $(function () { //注意:这里是数据表格的加载数据,必须写 ...

  6. layui数据表格解析html,layui框架table 数据表格的方法级渲染详解

    layui框架table 数据表格的方法级渲染详解 如下所示: //js 规范书写 var tst=table.render({ elem: '#test11' ,cols: [[ //标题栏 {ch ...

  7. jQuery EasyUI API 中文文档 - DataGrid 数据表格

    扩展自 $.fn.panel.defaults ,用 $.fn.datagrid.defaults 重写了 defaults . 依赖 panel resizable linkbutton pagin ...

  8. jquery easyui DataGrid 数据表格 属性

    扩展自 $.fn.panel.defaults ,用 $.fn.datagrid.defaults 重写了 defaults . 依赖 panel resizable linkbutton pagin ...

  9. JQuery Easy Ui dataGrid 数据表格 --转

    转至: http://www.cnblogs.com/cnjava/archive/2013/01/21/2869876.html#events 数据表格 - DataGrid 内容 概况 使用方法 ...

最新文章

  1. 深度学习背后的基础-神经网络揭秘
  2. python的第三方库-Python第三方库安装和卸载
  3. 产品经理入门应该怎样学习和成长?
  4. 《浪潮之巅》读书笔记(中)
  5. 图像处理--图像上采样和下采样
  6. Django(part4)--练习及re_path方法
  7. mysql基础_月隐学python第22课
  8. Linux学习笔记005----CentOS7 vi模式保存并退出
  9. PAT 1013 数素数
  10. logrotate日志管理工具
  11. JavaCV入门使用
  12. 机器学习——模型融合
  13. X Window 用户指南
  14. Oracle基本知识点总结
  15. RETINA 屏幕1px 边框实现
  16. 使用Math.max和Math.min求数组的最大值和最小值
  17. 香港主机与美国主机的相同点和不同点
  18. Eterm协议中文汉字编码
  19. C++用桌面图标系列之三【整理-时钟】
  20. 【机器学习】多项式回归案例五:正则惩罚解决过拟合(Ridge回归和Lasso回归)

热门文章

  1. 企业数据安全治理最佳实践案例汇总
  2. 联想SR850系列微码升级
  3. 美创科技首届渠道高峰论坛| 两大分论坛亮点汇聚
  4. 海量大数据重度孵化器生态城运营 20余家企业注册
  5. 2012 中国移动者开发大会
  6. linux 自启动 快捷键,Linux 自定义快捷键
  7. [双系统]win7下安装Ubuntu16.04
  8. 蓝牙开关消失修复记录(win10 技嘉WiFi主板):更新蓝牙驱动不行的话,试一下更新WiFi驱动
  9. 电信用户申诉完全攻略
  10. 迅为IMX6Q开发板上移植mplayer