在B/S开发中页面制作涉及HTML、CSS、javascript等技术,我们随掌握相关技术,但实际开发中页面美化特别是样式设计一直困扰着我们。怎样更好、更快的设计美观、专业、时代性的页面呢?JQuery EasyUI就能帮助我们解决这个问题。

jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式 有深入的了解,开发者需要了解的只有一些简单的html标签。

jQuery EasyUI为我们提供了大多数UI控件的使用,如:accordion,combobox,menu,dialog(网页窗体效果),tabs,tree,DataGrid(强大的数据的绑定和显示控件),ValidateBox(数据验证控件,可以很好的对表单数据进行验证)、window等等。

OK,下面就开始我们的探索之旅…

一、JqueryEasyUI准备

1、下载 jQuery EasyUI 1.2.3

2、将下载包中下列内容拷贝到你项目中

themes文件夹

jquery.easyui.min.js

jquery-1.4.4.min.js

3、在页面中加入js/css文件

<link rel="stylesheet" type="text/css" href="../common/themes/icon.css"/>

<link rel="stylesheet" type="text/css" href="../common/themes/default/easyui.css" />

<script type="text/javascript" src="../common/jquery-1.4.4.min.js"></script>

<script type="text/javascript" src="../common/jquery.easyui.min.js"></script>

二、Dialog(网页窗体效果)

轻松实现在显示页面对话框,可定制工具栏、按钮、对话框内容,足以满足应用的需要,效果如下:

语法格式:

$(‘#dd’).dialog(options);

Options是参数描述,描述形式是{属性名:值, 属性名:值,…},在很多JQuery框架中方法的参数都是这样描述的

主要属性列表:

l         title:‘对话框标题’

l         minimizable :true|false

l         maximizable :true|false

l         resizable  :true|false

l         toolbar :[{…},{…},{…},…]    //定义工具栏

l         buttons ::[{…},{…},{…},…]  //定义对话框右下角的按钮

对于属性有多个值的设置,采用如下形式(同样大多数JQuery框架中也都是这样描述的):

[

{text:'添加',iconCls:'icon-add',handler:function(){alert('t');}},

{text:'查询',iconCls:'icon-search',handler:function(){alert('t');}

]

说明iconCls设置按钮的图标样式,目前jQuery EasyUI图标有(存放在themes/icons目录):

对应的样式即 icon-图标文件名

代码实现:

Open.html:

<link rel="stylesheet" type="text/css" href="../themes/icon.css">

<script type="text/javascript" src="../common/jquery-1.4.4.min.js"></script>

<script type="text/javascript" src="../common/jquery.easyui.min.js"></script>

<script type="text/javascript" src="open.js"></script>

<span οnclick="Open_Dialog()">弹框</span>

<div id="mydialog" style="display:none;padding:5px;width:400px;height:200px;" title="弹框练习">

<!—在此处组织对话框的内容-->

Dialog Content

</div>

Open.js:

function Open_Dialog() {

$('#mydialog').show();//首先把隐藏的层显示出来

$('#mydialog').dialog(

{   minimizable: true,

maximizable: true,

toolbar: [{

text: '添加',

iconCls: 'icon-add',

handler: function() {

alert('添加数据')

}

},{

text: '查询',

iconCls: 'icon-search',

handler: function() {

alert('查询数据') }

}],

buttons: [{

text: '关闭 ',

handler: function() {

$('#mydialog').dialog('close');

}

}]

});

}

这样就ok,试一下吧!

三、各种消息框

Js中的alert()、confirm()外观太土气了,现在都是采用弹出层的效果,要与时俱进

使用messager组件可轻松实现

1、  显示消息框

$.messager.alert(title, msg, icon, fn ),效果如下:

2、$.messager.confirm(title, msg, fn ),效果如下:

Messager的这两个方法十分简单,title 设置对话框的标题,msg对话框的内容,icon对话框上的图标类型(取值:error,question,info,warning),fn单击按钮要调用的函数

示例代码:

<script>

function alert_info(){

$.messager.alert('消息框','消息','info');

}

function confirm_info(){

$.messager.confirm('确认','要删除吗?',function(ret){

if(ret){

$.messager.alert('消息','已删除');

}

});

}

</script>

<a href="javascript:alert_info();">消息</a><br>

<a href="javascript:confirm_info();">确认</a><br>

3、$.messager.show(Options)

比较特殊,是在屏幕的右下角显示消息框,可设置超时时间(the message window will be auto closed when timeout.),常常用来制作及时提醒的效果

Options是参数描述,描述形式是{属性名:值, 属性名:值,…}

主要属性:

Width:窗体宽度

Height:窗体高度

Msg:窗体文本内容

Title:窗体标题

Timeout:设置窗口的多长时间关闭

showType:消息窗口的显示方式:null,slide,fade,show。默认是 slide

示例代码:

function show(){

$.messager.show({

title:'提示信息',

msg:'信息5秒后消失',

showType:'show',

height:300,

width:400,

timeout:5000

});

}

<a href="javascript:void(0)" onClick="show()">显示</a> |

四、表单验证

表单验证:一要编写验证规则;二要编写信息显示效果。比较麻烦,占据我们比较多的时间,而JQuery EasyUI提供的验证组件很好的解决这个问题,只需在表单字段上做如下设置:

Class="easyui-validatebox"  设置验证结果的样式

validType=” email”  应用验证规则

required="true"  决定是否必须填写

missingMessage=”Email必须填写”  设置显示信息

invalidMessage=”Email格式无效”   设置显示信息

即可,是不是很容易

不过validType只有email、url、length[m,n]几种验证规则

效果演示:

代码:

<tr>

<td align="right">姓名:</td>

<td><input class="easyui-validatebox" required="true" validType="length[2,6]" missingMessage="姓名必须填写"  invalidMessage="姓名必须是2到6位"></td>

</tr>

<tr>

<td  align="right">电子邮件:</td>

<td><input class="easyui-validatebox" required="true" validType="email"></td>

</tr>

<tr>

<td  align="right">URL:</td>

<td><input class="easyui-validatebox" required="true" validType="url"></td>

</tr>

五、DataGrid数据列表控件

DataGrid用来做什么的呢?让我们先看看用它实现的效果:

通过DataGrid可以以表格的形式呈现数据,可以实现分页、排序、执行添加、修改、删除数据,为我们提供很多便利,正因为DataGrid的强大,所以使用起来也相当比较复杂,我们先从基本的学起,逐步深入

1、基本属性

Title:DataGrid的标题

Width:宽度

Height:高度

iconCls:DataGrid的图标

2、定义列标题,DataGrid有两种形式的列标题

定义普通列属性

Columns

定义冻结列:被冻结的列将不随着水平滑块的滚动而滚动(类似于Excel效果)

frozenColumns

两种列标题设置列的值是一样的

[{field:'age',title:'年龄',width:50},{field:'grade',title:'班级',width:80},…  ]

field:标题名称(与json数据的属性名一致)

title:标题文本

width:宽度

3、绑定数据

url:‘数据源’,要求采用Json格式组织数据

指定json文件

动态产生(稍后讲解)

特定的Json格式数据,要求如下:

{"rows":[

{"id":"1001","name":"Jack","age":18,"grade":"S101"},

       {"id":"1002","name":"Peter","age":18,"grade":"S101"},

       {"id":"1003","name":"John","age":18,"grade":"S101"} ]

}

说明:rows描述要显示的所有行数据,使用{‘属性名’:‘值’,. ‘属性名’:‘值’,…}描述一条记录,记录之间用’,’分割,注意属性名要与列标题的field属性值一致,这样记录就绑定到DataGrid上了

4:定义工具栏

toolbar

值:[{text:'添加',iconCls:'icon-add'},'-',{text:'删除',iconCls:'icon-remove'}]

 

这些是DataGrid最核心的属性掌握了这些,我们来做个练习

代码演示:

页面部分:

<body>

<table id="test"></table>

</body>

Js代码:

$(function() {

$('#test').datagrid({

title: 'jQuery EasyUI---DataGrid',

iconCls: 'icon-save',

width: 500,

height: 350,

url: 'datagrid_data.json',

frozenColumns: [[

{ field: 'ck', checkbox: true },

{ title: 'ID', field: 'ID', width: 80, sortable: true }

]],

columns: [

[

{ field: 'name', title: '姓名', width: 120 },

{ field: 'addr', title: '地址', width: 120,  sortable: true },

{ field: 'opt', title: '操作', width: 100, align: 'center',

formatter: function(value, rec) {

return '<span style="color:red">编辑 删除</span>';

}

}

]],

toolbar: [{

text: '添加',

iconCls: 'icon-add',

handler: function() {

alert('添加数据')

} }, '-',

{

text: '保存',

iconCls: 'icon-save',

handler: function() {

alert('保存数据')

} }]

});

});

五、数据分页

DataGrid跟分页相关的属性有主要有三个:

pagination:true  表示使用分页

pageSize:5   设置一页显示多少条记录

pageList:[5,10,20]   设置下拉列表的选项,通过该选项可以重新设置分页尺寸

注意若pagination:true  数据源(json数据)必须设置total属性,通过该属性设置数据的总记录数,这对于分页是必须得

Json数据格式:

{“total”:20,

"rows":[

{"id":"1001","name":"Jack","age":18,"grade":"S101"},

       {"id":"1002","name":"Peter","age":18,"grade":"S101"},

       {"id":"1003","name":"John","age":18,"grade":"S101"} ]

}

 

六、使用DataGrid动态显示数据并实现分页

主要三个步骤:

步骤1:设置url: '/demo/ListServlet‘

步骤2:编写后台组件

接受二个参数: page: 页号; rows: 每页记录大小

这两个参数是DataGrid分页导航向目标(url设置的动态页面)传递的数据

提取数据集合(List)

步骤3:转化JSon格式

使用json-lib组件

完整示例代码如下:

页面:

<body>

<table id="student"></table>

</body>

JS代码:

<script>

$(function(){

$("#student").datagrid(

{

title:'学生信息',

width:500,

height:400,

iconCls:'icon-save',

url:'/querydemo/ListServlet',

idField:"id",

singleSelect:false,

frozenColumns:[[

{field:'ck',checkbox:true},

{field:'id',title:'编号',width:50},

{field:'name',title:'姓名',width:100}

]],

columns:[

[

{field:'age',title:'年龄',width:50},

{field:'grade',title:'班级',width:80}

],

],

toolbar:[

{text:"删除",iconCls:"icon-remove"},

{text:"添加",iconCls:"icon-add"}

],

pagination:true,

pageSize:5,

pageList:[5,10,20]

}

);

});

</script>

ListServlet代码:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setCharacterEncoding("utf-8");

StudentService ss=new StudentServiceImpl();

String spage=request.getParameter("page");

String srows=request.getParameter("rows");

if(spage==null||spage.equals("")){

spage="1";

}

if(srows==null||srows.equals("")){

srows="5";

}

int page=Integer.parseInt(spage);

int row=Integer.parseInt(srows);

PageMode pm=ss.getStudentList(page, row);

JSONObject jsonobj=new JSONObject();

jsonobj.put("total", pm.getTotalCount());

jsonobj.put("rows", pm.getData());

response.getWriter().print(jsonobj.toString());

}

说明:使用JSObject组件将java数据转为Json格式数据,然后通过Response输出到客户端

JSONObject jsonobj=new JSONObject();//创建JSObject组件

//将要转换的数据放置到jsonobj中

//放置DataGrid分页所需要的total属性其值

jsonobj.put("total", pm.getTotalCount());

//放置DataGrid分页所需要的rows属性及其值

jsonobj.put("rows", pm.getData());

//将存放在jsonobj的数据,转化为JSON格式

jsonobj.toString()

注意:需要向项目中加入如下Jar包

业务层代码(StudentServiceImpl):

private List<Student> stuList=new ArrayList<Student>();

public StudentServiceImpl(){

//可操作数据库,这里在list中组织数据

stuList.add(new Student(1001,"张飞",18,"S2"));

stuList.add(new Student(1002,"刘备",18,"S2"));

stuList.add(new Student(1003,"貂蝉",18,"S2"));

stuList.add(new Student(1004,"关羽",18,"S2"));

stuList.add(new Student(1005,"曹操",18,"S2"));

stuList.add(new Student(1006,"夏侯惇",18,"S2"));

stuList.add(new Student(1007,"周瑜",18,"S2"));

stuList.add(new Student(1008,"孙权",18,"S2"));

stuList.add(new Student(1009,"孙坚",18,"S2"));

stuList.add(new Student(1010,"关平",18,"S2"));

stuList.add(new Student(1011,"Jack",18,"S2"));

stuList.add(new Student(1012,"Jack",18,"S2"));

stuList.add(new Student(1013,"Jack",18,"S2"));

stuList.add(new Student(1014,"Jack",18,"S2"));

stuList.add(new Student(1015,"Jack",18,"S2"));

stuList.add(new Student(1016,"Jack",18,"S2"));

stuList.add(new Student(1017,"Jack",18,"S2"));

stuList.add(new Student(1018,"Jack",18,"S2"));

stuList.add(new Student(1019,"Jack",18,"S2"));

stuList.add(new Student(1020,"Jack",18,"S2"));

}

@Override

public PageMode getStudentList(int pageNo, int pageSize) {

// TODO Auto-generated method stub

PageMode pm=new PageMode();

pm.setTotalCount(20);

int offset=(pageNo-1)*pageSize;

int end=pageNo*pageSize;

for(int i=offset;i<end;i++){

pm.getData().add(stuList.get(i));

}

return pm;

}

实体组件:

PageMode:

public class PageMode {

//封装总记录数

private int totalCount;

//封装数据

private List data=new ArrayList();

public int getTotalCount() {

return totalCount;

}

public void setTotalCount(int totalCount) {

this.totalCount = totalCount;

}

public List getData() {

return data;

}

public void setData(List data) {

this.data = data;

}

}

Student:

public class Student implements java.io.Serializable {

private int id;

private String name;

private int age;

private String grade;

//省略set/get方法

}

转载于:https://www.cnblogs.com/xiaopohou/archive/2011/09/28/2194091.html

富有客户端技术之——jQuery EasyUI相关推荐

  1. JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第一篇:前期环境准备

    新闻发布管理系统是大三第二学期做的课程设计,偶然看到之前写的这个项目,因此把整个项目的开发过程拿出来分享分享,虽然这是为了应付课程设计而做出来的项目,但是自己也巩固了一下自己的知识,并且即学即运用了j ...

  2. YbSoftwareFactory 代码生成插件【八】:基于JQuery EasyUI、Web Api的 ASP.NET MVC 代码生成插件...

    "YbRapidSolution for MVC"是 YbSoftwareFactory 最新的代码生成插件,可一键生成基于ASP.NET MVC的解决方案源代码.其生成的 Dem ...

  3. JQuery EasyUi之界面设计——前言与界面效果(一)

    为什么80%的码农都做不了架构师?>>>    如果冯巩的开场白是"观众朋友们,我想死你们了",那么我的开场白是"最近一直很忙,很久没有发文了" ...

  4. JQuery EasyUI学习框架

    前言 前端技术,新项目的开发拟使用EasyUI框架(基于EasyUI丰富UI组件库),项目负责人的提示EasyUI分配给我这个任务.发展前,我需要这对于一个新手EasyUI框架学习一些基本的入门.记录 ...

  5. 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享

    使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery ...

  6. jquery easyui Tab 引入页面的问题

    jQuery Easyui 的tabs插件有两种方式加载某个tab(标签页)上的内容:"href远程请求"和"content本地内容",本文就两种方式的优缺点进 ...

  7. 《jQuery EasyUI开发指南》——导读

    ** 前言 ** 我们都知道,Java语言本身有专注于后端的特点.如果使用Java语言来开发项目,可以把Java代码嵌入前端中来.但实际上,专业人士并不提倡这么做.因为前端的开发就应该由前端语言来做, ...

  8. 使用jQuery easyui和Springdata JPI进行数据的查询

    使用jQuery easyui进行数据的查询     [1]无条件查询          1. datagrid 在页面加载后 会自动向 url 地址发送一次请求                 传递 ...

  9. jQuery EasyUI 1.9.4中文参考手册 离线chm格式

    jquery-easyui1.9.4中文参考手册是一套关于jQuery EasyUI的参考帮助文档,在线帮助文档进行整理,生成chm文件,便于开发时或者离线对easyi控件的属性.文法.事件等内容的查 ...

最新文章

  1. 这可能是最详细的Python文件操作!
  2. 如何定制视频业务- ramdisk 内存文件系统
  3. python3 分割函数 partition rpartition 函数
  4. tomcat war java_java – 启动Tomcat WAR
  5. Call调用webservice接口,使用命名空间和不使用命名空间的区别
  6. iPhone的UDID与push中使用的device token的关系
  7. plsql存储过程修改后怎么保存_Solidity变量存储位置与gas成本详解
  8. 程序员过关斩将--互联网人必备知识cookie和session认证
  9. 用access建立一个试题库_Access考试题库(含答案).doc
  10. 教你如何成为解决问题的高手
  11. NativeScript - JS 构建跨平台的原生 APP
  12. mysql链接压测_MySQL压测工具mysqlslap的介绍与使用
  13. python产生随机数并排序_中小学python教学案例:随机数按升序排列 输出
  14. 关于单片机大循环结构编程
  15. php语句insert,SQL INSERT INTO
  16. 字体引起的用户密码错误
  17. python下载所有 XKCD 漫画
  18. 【C++实战 】标准库
  19. Python读取文本文件的几种方式
  20. 最新!使用Python爬取蓝奏云文件下载直链并下载,支持批量爬取,已封装为函数,可直接使用(含注释、库的使用解释)

热门文章

  1. django的模板系统
  2. php 实现一致性hash 算法 memcache
  3. linux清空文件内容
  4. java字符串,包,数组及空心正方形,菱形的实例
  5. ViewPager Indicator的使用方法
  6. 电厂MIS,SIS简介
  7. 线程同步——内核对象实现线程同步——等待函数
  8. 使用WDS安装Windows8.1
  9. 物联网产业链及市场分
  10. 程序员35岁生死大关!被迫无奈转行.....