jQuery EasyUI教程之datagrid应用(一)
最近一段时间都在做人事系统的项目,主要用到了EasyUI,数据库操作,然后抽点时间整理一下EasyUI的内容。
这里我们就以一个简洁的电话簿软件为基础,具体地说一下datagrid应用吧
datagrid就是一个表格,那我们怎么让数据库中的数据显示在其中呢?
第一步:各种配置这肯定不用说,你要想正常的应用一款软件就需要加载配置,这里我们不做详细说明 ;
第二步:配置加载完毕,我们就需要写方法调用数据库来获取数据了,
1.最底层的方法也就是Dao了 ,我们需要获取所有的联系人信息,
2.这里我们定义两个共用方法来初始化Hibernate和最后的释放资源
public class PhoneDAO {
List<Deal> list = null ;
private SessionFactory sf = null ;
private Session se = null ;
private Transaction ts = null ;
Configuration cfg = null;
ServiceRegistry sr = null ;
//在测试用例方法被执行之前自动执行的方法
//一般用来初始化对象
public PhoneDAO() {
//1获取配置文件
cfg = new Configuration().configure() ;
//2注册配置
sr = new StandardServiceRegistryBuilder().
applySettings(cfg.getProperties()).build();
}
public void init ()
{
try{
//3获取SessionFactory
sf = cfg.buildSessionFactory(sr) ;
}catch(Exception e)
{
//1获取配置文件
cfg = new Configuration().configure() ;
//2注册配置
sr = new StandardServiceRegistryBuilder().
applySettings(cfg.getProperties()).build();
//3获取SessionFactory
sf = cfg.buildSessionFactory(sr) ;
}
//4产生Session
se =sf.openSession() ;
//5启动事务
ts = se.beginTransaction() ;
}
//后置对象
//用来释放资源
public void destroy()
{
try
{
//7提交数据
ts.commit();
}catch(Exception e)
{
cfg = new Configuration().configure() ;
//2注册配置
sr = new StandardServiceRegistryBuilder().
applySettings(cfg.getProperties()).build();
//3获取SessionFactory
sf = cfg.buildSessionFactory(sr) ;
//4产生Session
se =sf.openSession() ;
//5启动事务
ts = se.beginTransaction() ;
ts.commit();
}
//8释放资源
se.close();
sf.close(); //关闭,释放资源
}
}
3.之后我们写入查询的方法
//查询联系人
public List<Phone> showAll()
{
init() ;
List<Phone> list = null ; list = se.createQuery("from Phone").list() ; destroy(); return list;
}
这里我们就获得了所有联系人列表
第三步:这里我们定义了一个json封装的泛型实体类,用来包装并返回json格式
package p_phone; import java.util.ArrayList;
import java.util.List; /**
* @author Administrator
*封装类
*通过泛型封装JSON的结果数据
*total 初始化为0
*rows为List集合的泛型
*/ /*
* 该类为封装JSON的结果数据集,
* 所以两个变量的名字要对应JSON的格式
* 并且为了简便省去拼接,我们定义row为List的集合
*/ public class PageJSON<T> { private int total = 0 ;//定义total并初始化 private List<T> rows = new ArrayList<T>() ;//定义List集合的泛型 /*
* setting 、getting 方法
*/
public int getTotal() {
return total;
} public void setTotal(int total) {
this.total = total;
} public List<T> getRows() {
return rows;
} public void setRows(List<T> rows) {
this.rows = rows;
} }
下面的是实体类
package p_phone;
// Generated 2016-12-14 14:17:07 by Hibernate Tools 3.4.0.CR1 import java.util.Date; /**
* Phone generated by hbm2java
*/
public class Phone implements java.io.Serializable { private String PNumber;
private String PName;
private Date PBirthday;
private String PRemark; public Phone() {
} public Phone(String PNumber, String PName, Date PBirthday) {
this.PNumber = PNumber;
this.PName = PName;
this.PBirthday = PBirthday;
} public Phone(String PNumber, String PName, Date PBirthday, String PRemark) {
this.PNumber = PNumber;
this.PName = PName;
this.PBirthday = PBirthday;
this.PRemark = PRemark;
} public String getPNumber() {
return this.PNumber;
} public void setPNumber(String PNumber) {
this.PNumber = PNumber;
} public String getPName() {
return this.PName;
} public void setPName(String PName) {
this.PName = PName;
} public Date getPBirthday() {
return this.PBirthday;
} public void setPBirthday(Date PBirthday) {
this.PBirthday = PBirthday;
} public String getPRemark() {
return this.PRemark;
} public void setPRemark(String PRemark) {
this.PRemark = PRemark;
} }
之后在service层中我们写一个方法返回json类型的所有联系人列表
public String getPageJSON()
{
String rtn = "{\"total\":0,\"rows\":[ ]}";//定义变量并初始化JSON格式的结果集 PageJSON<Phone> pjson = new PageJSON<Phone>() ;//封装Rate类 List<Phone> list = new PhoneDAO().showAll() ;//定义List集合并赋值 String json_list = JSONArray.toJSONString(list) ; //将List集合转为JSON集合
System.out.println(json_list);
/*
* 通过set方法给实例化的对象赋值
*/
pjson.setRows(list);
pjson.setTotal(2); rtn = JSONArray.toJSONString(pjson) ; //将对象JSON类型的数组 return rtn ; //返回JSON类型的结果集
}
第四步:到这里已经接近尾声了,我们再写一个Servlet,将数据传递到页面,重写doGet方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//转码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
String json_list = new PhoneService().getPageJSON() ;
response.getWriter().write(json_list) ;
}
第五步:也就是最后一步了,我们怎么让它显示到页面上呢?上面我们在Servlet中已经将获取到的json类型的所有联系人写到了网页上,之后我们在页面获取就好了
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>联系人</title>
<!-- 1 jQuery的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script> <!-- 2 css资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css"> <!-- 3 图标资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css"> <!-- 4 EasyUI的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script> <!-- 5 本地语言 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script> </head>
<body>
<script type="text/javascript">
$(function(){ $("#dg").datagrid({
url:'SelectPhone' ,
idField:'pNumber',
columns:[[
{field:'pName',title:'姓名',width:100},
{field:'pNumber',title:'电话',width:100},
{field:'pBirthday',title:'生日',width:100,align:'right'},
{field:'pRemark',title:'备注',width:100,align:'right'}
]]
}) ; })
</script>
<table id="dg"></table>
</body>
</html>
到这里就全部完成了,运行一下,看看效果

是不是将数据库的内容显示到网页上了,虽然样式不太好看,但是别着急我们一步一步慢慢来,
上面也说到了,样式不好看,那我们能不能改呢,当然能,datagrid为我们提供了方法,稍加修改,页面变成了下面的样子

修改下之前的代码:
columns:[[
{field:'pName',title:'姓名',width:100,align:'center'},
{field:'pNumber',title:'电话',width:100,align:'center'},
{field:'pBirthday',title:'生日',width:100,align:'right',align:'center'},
{field:'pRemark',title:'备注',width:100,align:'right',align:'center'}
]],
pagination:true,//分页
fitColumns:true,//列自适应宽度
rownumbers:true,//显示行号
striped:true,//斑马线
singleSelect:false,//是否单选
现在在页面上我们看到了分页,这是因为我们开启了分页功能,
想了解分页功能请点击链接 :jQuery EasyUI教程之datagrid应用(二)
jQuery EasyUI教程之datagrid应用(一)的更多相关文章
- jQuery EasyUI教程之datagrid应用(三)
今天继续之前的整理,上篇整理了datagrid的数据显示及其分页功能 获取数据库数据显示在datagrid中:jQuery EasyUI教程之datagrid应用(一) datagrid实现分页功能: ...
- jQuery EasyUI教程之datagrid应用(二)
上次写到了让数据库数据在网页datagrid显示,我们只是单纯的实现了显示,仔细看的话显示的信息并没有达到我们理想的效果,这里我们丰富一下: 上次显示的结果是这样的 点击查看上篇:jQuery Eas ...
- jQuery EasyUI教程之datagrid应用
一.利用jQuery EasyUI的DataGrid创建CRUD应用 对网页应用程序来说,正确采集和管理数据通常很有必要,DataGrid的CRUD功能允许我们创建页面来列表显示和编辑数据库记录.本教 ...
- jQuery EasyUI教程之datagrid应用-1
一.利用jQuery EasyUI的DataGrid创建CRUD应用 对网页应用程序来说,正确采集和管理数据通常很有必要,DataGrid的CRUD功能允许我们创建页面来列表显示和编辑数据库记录.本教 ...
- jQuery EasyUI教程之datagrid应用-2
二.DataGrid的扩展应用 上一份教程我们创建的一个CRUD应用是使用对话框组件来增加或编辑用户信息.本教程将教你如何创建一个CRUD 数据表格(datagrid). 为了让这些CRUD功能正常工 ...
- jQuery EasyUI API - Grid - DataGrid [原创汉化官方API]
最近在学习jQuery EasyUI,发现中文的文档好少,部分文档不错但它是鸟语的,为了大家也为了自己学习吧,汉化做一下笔记. 有没有说清楚的,或者翻译不正确的地方还请大家谅解指出.. 由于工作时间原 ...
- 【Jquery EasyUI + Servlet】DataGrid,url请求带中文出现乱码的解决方案
demo.jsp: <% String name = "乱码"; %> $(function(){ $('#dg').datagrid({ url: 'DemoServ ...
- 关于Jquery EasyUI中的DataGrid服务器端分页随记
一.关于DataGrid的分页和排序参数 对于分页参数不需要用户指定,程序在AJAX请求的时候会带上分页和排序需要的参数 每页显示条数:rows 当前页:page 排序字段:sort [multiS ...
- jQuery基础教程之is()方法和has() 方法
is()方法 —— 用于筛选 语法: jQueryObject.is( expr )返回值: is()函数的返回值为Boolean类型.true或者false.只要其中至少有一个元素符合给定的表达式就 ...
随机推荐
- C# 结构转化
一.string 转 char[] string ss = "alsofly"; char[] cc = ss.ToCharArray(); 二.char[] 转 string c ...
- Mysql查看版本号的五种方式介绍
Mysql查看版本号的五种方式介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-03 一.使用命令行模式进入mysql会看到最开始的提示符;二.命令行中使用status可以看到 ...
- c语言中的指针问题
“*”符号的作用在C语言中有两种: 1.声明该变量是指针,例如:int * p;//表示声明一个int类型的指针,变量名为p 2.在指针运算时,表示取这个地址上的内容,例如 temp = *p;// ...
- C#中的延迟加载
什么是延迟加载? 延迟加载顾名思义就是:推迟加载的时机,当真正使用的时候才加载. 通常在创建一个大对象时,有些属性我们可以在使用到的时候才去创建(设置属性的值),这个可以有效的提升系统性能. 示例 ...
- github 或者gitlab 设置添加SSH, 避免每次提交重复输入用户名
克隆项目二种方式: 1. 使用https url克隆, 复制https url 然后到 git clone https-url 2.使用 SSH url 克隆却需要在克隆之前先配置和添加好 SSH ...
- android 自定义控件
学习参考:http://blog.csdn.net/hudashi/article/details/50913257 http://blog.csdn.net/gebitan505/article/d ...
- Python基础(深、浅拷贝)
深.浅拷贝 基础:对象,引用,可变与可变 对于不可变的对象,如字符串.元组.数字深浅拷贝没有什么意义. 1.浅拷贝 浅拷贝只拷贝第一层对象(拷贝的实际是一个框子,拷贝过去的框子是不会变的,但是原先的框 ...
- tcpdump教程入门
tcpdump是一个最基本重要的网络分析工具, 掌握好这, 对于学习tcp/ip协议也是很有帮助的. 理解了tcp/ip协议栈的知识, 分析调优网络的能力才会更高. 所以使用tcpdump相比其它的工 ...
- javascript源代码学习之五——jQuery.deferred
jQuery.Defered——异步队列用于管理一组回调函数(成功resolve,失败reject,消息progress),基于上一节实现的jQuery.callbacks完成. done,fail, ...
- DNS消息格式
一,简介 空谈误国,要让一大堆抽象的DNS概念落地,还是需要了解DNS消息格式的,本文会尽量详细地介绍DNS消息格式的每一个字段. 也可以移步rfc1035了解. 二,概览 DNS消息主要由五部分组成 ...