为什么80%的码农都做不了架构师?>>>   

一、引言

终于来到easyui系列笔记的重点部分——数据网格datagrid插件。在MIS开发中,需要展示数据大量数据并且频繁地进行CRUD操作,datagrid强大功能可以帮助我们简单快速实现各种功能,是必须要掌握开发MIS的利器。

为了将datagrid讲解清楚,我们打算分上、中、下三篇来进行介绍。

 上篇介绍datagrid数据网格创建,读取json数据并进行分页;

 中篇介绍配合dialog插件实现CRUD操作;

 下篇介绍datagrid如何与struts的action交换数据;

这次换个思路,首先给出最终实现的效果图,(分页栏没截出来):

二、创建数据网格

查看http://www.jeasyui.net/我们发现datagrid提供三种创建数据网格的方式,偷个懒,直接从官网截图给出例子:

(1) 从已有的表格元素创建数据网格(datagrid),在 html 中定义列、行及数据。

<table class="easyui-datagrid"><thead><tr><th data-options="field:'code'">Code</th><th data-options="field:'name'">Name</th><th data-options="field:'price'">Price</th></tr></thead><tbody><tr><td>001</td><td>name1</td><td>2323</td></tr><tr><td>002</td><td>name2</td><td>4612</td></tr></tbody>
</table>

(2) 通过 <table> 标记创建数据网格(datagrid)。嵌套的 <th> 标签定义表格中的列。

<table class="easyui-datagrid" style="width:400px;height:250px"data-options="url:'datagrid_data.json',fitColumns:true,singleSelect:true"><thead><tr><th data-options="field:'code',width:100">Code</th><th data-options="field:'name',width:100">Name</th><th data-options="field:'price',width:100,align:'right'">Price</th></tr></thead>
</table>

(3) 使用 javascript 创建数据网格(datagrid)。

<table id="dg"></table>
$('#dg').datagrid({url:'datagrid_data.json',columns:[[{field:'code',title:'Code',width:100},{field:'name',title:'Name',width:100},{field:'price',title:'Price',width:100,align:'right'}]]
});

这里我们采用第3种方式来创建datagrid。

首先在customer.html网页中编写div,如下所示:

<div style="width:100%;height:100%;padding:0px;overflow:hidden"><table id="grid"></table>
</div>

接下来编写如下js代码,代码几乎每一行都进行了注释,应该很清楚了。

<script type="text/javascript">
/* jquery入口*/
$(function() {loadgrid(); //加载datagrid
});
/* 加载datagrid列表*/function loadgrid(){$('#grid').datagrid({title : '客户',url : 'datagridData.json',loadMsg : '正在加载…',  //当从远程站点载入数据时,显示的一条快捷信息。fit : true,  //窗口自适应nowrap: false, //设置为true,当数据长度超出列宽时将会自动截取fitColumns : true, // 自动适应列宽singleSelect : true, // 每次只选中一行sortName : 'customerNo', //默认排序字段sortOrder : 'asc', // 升序asc/降序descstriped : true,  // 隔行变色  pagination : true,  // 在底部显示分页工具栏pageNumber : 1, //初始化页码 pageSize : 20,  // 指定每页的大小,服务器要加上page属性和total属性pageList : [ 20, 30, 50 ], // 可以设置每页记录条数的列表,服务器要加上rows属性//rownumbers : true, // 在最前面显示行号 idField : 'id', // 主键属性// 冻结列,当很多咧出现滚动条时该列不会动frozenColumns : [ [{title : '序号', width : '100', field : 'id', sortable : true}, {title : '客户编号', width : '100', field : 'customerNo', sortable : true}, {title : '客户姓名', width : '100',  field : 'customerName',sortable : true}] ],columns : [ [ {title : '联系电话', width : '100', field : 'telephone', sortable : false}, {title : '联系地址', width : '200',    field : 'address', sortable : false}] ],      // 工具栏按钮toolbar: [
"-", {id: 'add', text: '添加',  iconCls: 'icon-add', handler: function () { add()} },
"-", {id: 'edit', text: '修改', iconCls: 'icon-edit',  handler: function () { edit()} },
"-", {id: 'remove', text: '删除',iconCls: 'icon-remove', handler: function () {remove()} },
"-", {id: 'remove',  text: '刷新',iconCls: 'icon-reload', handler: function () {reload()} } ]});
}
</script>

接下来进行必要的补充解释:

(1) url属性指定从远程站点请求数据的 URL。这里可以指定一个struts的action访问地址,此处暂时读取本地json,具体内容稍后给出。

(2) sortOrder、pageSize、pageList这几个属性非常重要。后面与struts的action传递数据时需要传递几个属性值:order、page、total、rows。需要依靠这些属性实现分页和排序。

(3) 列使用了json格式进行定义,需要指定title/width/field/sortable等值。如果列数很多,可以固定某些列(frozenColumns),横向滚动条滚动时可固定不动。

(4) 工具栏里的add、edit、remove等方法为增删改操作。具体实现将在下一篇的给出。

三、datagrid的json数据

要让datagrid显示数据,远程传递或本地读取的json数据格式如下:

{"total": ,"rows":[
{……},
{…}
]}

total为总记录数,rows为数据集合。为什么要这样写呢,依然龟腚!

这里我们给出测试的数据datagridData.json供参考:

{"total":25,"rows":[{"id":"1","customerNo":"A001","customerName":"张三1","telephone":"13888888888","address":"广州天河区"},{"id":"2","customerNo":"A002","customerName":"张三2","telephone":"13888888888","address":"广州天河区"},{"id":"3","customerNo":"A003","customerName":"张三3","telephone":"13888888888","address":"广州天河区"},{"id":"4","customerNo":"A004","customerName":"张三4","telephone":"13888888888","address":"广州天河区"},{"id":"5","customerNo":"A005","customerName":"张三5","telephone":"13888888888","address":"广州天河区"},{"id":"6","customerNo":"A006","customerName":"张三6","telephone":"13888888888","address":"广州天河区"},{"id":"7","customerNo":"A007","customerName":"张三7","telephone":"13888888888","address":"广州天河区"},{"id":"8","customerNo":"A008","customerName":"张三8","telephone":"13888888888","address":"广州天河区"},{"id":"9","customerNo":"A009","customerName":"张三9","telephone":"13888888888","address":"广州天河区"},{"id":"10","customerNo":"A010","customerName":"张三10","telephone":"13888888888","address":"广州天河区"},{"id":"11","customerNo":"B001","customerName":"李四1","telephone":"13888888888","address":"广州天河区"},{"id":"12","customerNo":"B002","customerName":"李四2","telephone":"13888888888","address":"广州天河区"},{"id":"13","customerNo":"B003","customerName":"李四3","telephone":"13888888888","address":"广州天河区"},{"id":"14","customerNo":"B004","customerName":"李四4","telephone":"13888888888","address":"广州天河区"},{"id":"15","customerNo":"B005","customerName":"李四5","telephone":"13888888888","address":"广州天河区"},{"id":"16","customerNo":"B006","customerName":"李四6","telephone":"13888888888","address":"广州天河区"},{"id":"17","customerNo":"B007","customerName":"李四7","telephone":"13888888888","address":"广州天河区"},{"id":"18","customerNo":"B008","customerName":"李四8","telephone":"13888888888","address":"广州天河区"},{"id":"19","customerNo":"B009","customerName":"李四9","telephone":"13888888888","address":"广州天河区"},{"id":"20","customerNo":"B010","customerName":"李四10","telephone":"13888888888","address":"广州天河区"},{"id":"21","customerNo":"C001","customerName":"王五1","telephone":"13888888888","address":"广州天河区"},{"id":"22","customerNo":"C002","customerName":"王五2","telephone":"13888888888","address":"广州天河区"},{"id":"23","customerNo":"C003","customerName":"王五3","telephone":"13888888888","address":"广州天河区"},{"id":"24","customerNo":"C004","customerName":"王五4","telephone":"13888888888","address":"广州天河区"},{"id":"25","customerNo":"C005","customerName":"王五5","telephone":"13888888888","address":"广州天河区"}
]}

哎,写这么多就是想超过20条能分页,请原谅我刷屏。

运行tomcat,在浏览器中输入localhost:8080/easyui/index.html,点击左侧菜单“客户”,就可以看到本笔记开篇的界面了。

需要提醒的是,由于工具栏按钮方法都没写,当然也不能增删改,中篇就可以了。由于读取本地json,分页排序暂时都是失效的,从action动态获取数据时就能起作用,下篇就可以了,喝点茶耐心等等。

转载于:https://my.oschina.net/ooad/blog/391811

EasyUI学习笔记6:MIS开发利器_ datagrid插件(上)相关推荐

  1. EasyUI学习笔记7:MIS开发利器_ datagrid插件(中)

    摘要 使用datagrid实现数据列表和CRUD操作,并实现与后台action交互,支持后台分页与排序.. easyui datagrid dialog form 目录[-] 一.引言 二.数据管理对 ...

  2. EasyUI学习笔记8:MIS开发利器_ datagrid插件(下)(终结篇)

    为什么80%的码农都做不了架构师?>>>    一.引言 最后一篇是easyui与struts传递数据.拖了好多天,因为一直没想好怎么写.这部分代码参考了一个开源项目,很早之前写的, ...

  3. EasyUI学习笔记5:来点甜点_ menu和theme插件

    摘要 使用easyui-menu插件实现右键菜单关闭tab页,实现更改主题 easyui menu 目录[-] 一.引言 二.右键菜单关闭tab 1.绑定tabs的右键菜单 2. 处理菜单点击事件 三 ...

  4. 学习笔记:Java 并发编程①_基础知识入门

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 视频下载: ...

  5. Polyworks脚本开发学习笔记(十)-互动式开发及出错控制

    Polyworks脚本开发学习笔记(十)-互动式开发及出错控制 第八章组合的各种命令,完成了一个对所选的测点名称进行命名的任务.但是,由于任务中没有交互环节,只能机械地将 曲面点 - 包边点改为Flu ...

  6. Polyworks脚本开发学习笔记(一)-脚本开发环境

    Polyworks脚本开发学习笔记(一)-脚本开发环境 背景 Polyworks的扫描尺寸测量分析模块是我工作中经常用到的一个模块,我不是做测量的,但是利用Polyworks对扫描获得的点云来进行尺寸 ...

  7. 学习笔记:Java 并发编程④_无锁

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 配套资料: ...

  8. Python学习笔记:Day1-2 开发环境搭建

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. Python学习笔记:web开发3

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. pandas groupby
  2. java抽象类关键字_Java之关键字abstract(抽象类与抽象方法)
  3. python 调用linux命令-python3调用linux命令——Subprocess
  4. 【学员分享】程序员效率神器,最常用VIM插件安装大全
  5. RMAN Restore, Recovery
  6. latex绘图笔记(一)
  7. Node.js -- Router模块中有一个param方法
  8. 框架模式和设计模式的区别
  9. 两种极端情况的案例:N+1次查询和笛卡尔积
  10. opencv 手册_有兴趣吗?程序员分手手册,教你如何恢复单身
  11. python处理xls到csv文件
  12. Spring 专业认证考试学习指南
  13. HTML是什么?有什么作用?
  14. QScrollArea的简单使用
  15. ssm启动不报错_ssm整合 启动表现层报错。。。
  16. 2022年电工(初级)考试报名及电工(初级)最新解析
  17. charles配置代理证书
  18. 安了锐捷后电脑总是弹出交互式检测
  19. day17、4 - 三层交换机热备份
  20. 根据屏幕大小自适应根字体大小

热门文章

  1. 浙江万里学院计算机期末考,期末复习看这一篇推送就够了
  2. 写程序验证费马素数猜想是否正确
  3. LaTeX--5--一个文档的基本结构/导言区/标题_作者_日期
  4. strcmp, strncmp和memcmp的区别
  5. canvas图形缩放功能
  6. git命令和遇见得 warning:
  7. 存储基础:DAS/NAS/SAN存储类型及应用
  8. win10开机启动文件夹路径
  9. 任意文件下载漏洞知识点
  10. 网络游戏中,对于无法使用封包断点进行分析找call的一种方法[以背包整理为例]