每一年都奔走在自己热爱里

 
没有人是一座孤岛,总有谁爱着你

EasyUI

easyui使用

1.简介(实现)

封装大量的jQuery插件(简化ajax,jquery,css样式,布局)
(1)插件实现:
① HTML标签+插件的class样式
我是讲
② HTML标签+基于编程的插件实现
我是洪
js代码: $("#btn").linkbutton();
(2)插件内容:
属性:设置插件的样式,图标,宽度,高度
事件:单击事件,双击
方法:修改插件属性,状态

2.搭建easyUI环境、实现第一个esayUI插件

(1)搭建EasyUI的环境
资源文件介绍:

搭建环境的步骤:
① 导入需要的css样式文件:easyui.css、icon.css
② 导入相关的js文件
jquery.min.js
jquery.easyui.min.js
jquery.easyui-lang-zh_CN.js
③ 注意:themes中的文件相对路径不能变

(2)第一个插件
插件:按钮(linkbutton)
实现插件效果标准开发步骤[记住]
标签: 按钮
样式名(规范): easyui-样式名
实例:
① 方式一:按钮
② 方式二:js插件名(调用插件方法)
$("选中超链接").插件名();
$("a").linkbutton();

3.easyUI的属性、事件、方法(重要)

HTML标签+样式:
HTML标签+编程插件方法:
(1)属性
基于标签规范:
<标签 class="easyui-样式名" data-options="属性名:值,属性名:值"> </标签>
基于编程的规范:
<标签 id="tag"></标签>
$("#tag").插件名( {
属性名:值,
属性名:值,
} );
(2)事件
基于标签的规范:
<标签 class="easyui-样式名" data-options="属性名:值,属性名:值, 事件名:事件函数名"></标签>
基于编程的方式:
<标签 id="tag"></标签>
$("#tag").插件名({
属性名:值,
事件名:事件函数名,
事件名:function(){
}
});
(3)方法
调用模板:$("标签").easyui插件('方法名',方法传入的参数);
例如:
$("a").linkbutton('resize',{width:300,height:100});

4.easyUI面板(panel)、窗口(window)、对话框(dialog)

(1)面板·Panel (使用div)
效果:

基于标签: HTML标签+easyui-样式名:
class样式名: easyui-panel
基于编程:$("").插件方法();
插件方法: $("div").panel();
示例代码:
(2)窗口·window (使用div)
样式名: easyui-window
插件方法名:$("div").window()
重要:
window继承panel, panel的属性、事件、方法都可以在window中使用
示例代码:

(3)对话框·dialog (使用div)
样式名: easyui-dialog
插件方法名:$("div").dialog()
示例代码:

5.easyUI消息框(messager:消息框、提示框、确认框)

① 消息框
$.messager.show({
属性名:值,
属性名:值
});
② 提示框
$.messager.alert({
属性名:值,
属性名:值
});
③ 确认框
$.messager.confirm({
属性名:值,
属性名:值
});
示例代码
① 消息框

② 提示框

③ 确认框

6.Form表单输入框相关(搜索等)、Form表单相关(重要:自动将数据加载到表单实例、登录实例)

(1)Form表单元素相关
① 文本输入框·textbox + 搜索
HTML标签: input:text
easyui插件: $("input").textbox();

搜索:如果是搜索输入框时:提交时的方法为onClickButton方法
	$(“按钮组 选中搜索的选择器”).textbox({
		prompt : “输入名字搜索”,
		buttonText : “搜索”,
		buttonIcon : “icon-search”,
		onClickButton : function() {
			//获取搜索文本内容提交
		}

});
② 数字输入框·numberbox
HTML标签: input:text
easyui插件: $("input").numberbox();

③ 日期输入框·datebox
标签: input:text
easyui插件: $('input').datebox()

④ 文件选择框·filebox
标签:input:text
easyui插件:$("input").filebox()

(2)form表单[重要]
① 属性: 参考api
② 事件:
$("form").form({
onSubmit:function(){ //表单提交之前,运行
//return false; //禁用表单提交
//return true; //允许提交表单
},
success:function(str){ //表单提交完毕,且服务器正常响应回浏览器后,执行
//str参数,是服务器响应给浏览器的json字符串数据
var msg = JSON.parse(str);
}
});
③ 方法:
交表单的方法:$("from").form("submit");//默认异步请求,且只有表单符合验证要求才提交数据
清空表单方法:$("form").form("clear");//清空表单数据
将数据填充在表单中:
a:将js的json对象数据直接填充在表单中
注意: 要求:json对象中属性名必须和表单控件的name值保持一致
$("form").form('load',{json对象的数据});
b: 将控制器url响应回的对象的js串格式数据,转化为js对象,自动添冲表单中。
注意: 要求:响应的json对象中属性名必须和表单控件的name值保持一致
$("form").form('load',"响应json数据的控制器的uri");
实例(自动将对象属性加载到表单中):

实例:

7.数据表格(datagrid:基本使用手册、展示表格数据)

(1)基本使用手册:更多需要查看api文档

(2)展示数据
① html标签:







ID 名字 性别 年龄 手机号 地址 操作

② easyui插件方法:$("#dg").datagrid();

③ 使用属性设置属性对应(以图书展示为例):

<body>

8.数据表格(datagrid:添加、(批量)删除、修改、分页、排序操作)

(1)添加:div 里面有form表单
① 准备一个添加的 dialog:标题+宽度+遮罩+默认关闭+按钮+内部form表单
② 准备一个添加按钮,绑定事件:显示添加的dialog
③ 提交表单
④ 提交完毕执行seccess函数:
清空form
关闭dialog
刷新datagrid(reload)
显示执行结果
(2)删除(批量删除)
a. 单个删除:
① 传递数据id
② ajax发送删除请求
③ 执行成功,刷新当前datagrid,重新加载数据
④ 提示执行结果
b. 批量删除:
① 获得所有被选中的行数据的所有id
② 发送ajax请求,提交所有的id值
③ 删除成功之后,刷新datagrid数据
④ 提示执行结果
(3)修改
a. 显示修改
① 根据id获得对应数据,并填充在表单中
② 显示表单
b. 修改
① 提交表单数据
② success成功后关闭dialog
③ 刷新datagrid数据
④ 提示执行结果
(4)分页

Map<String, Object> map = new HashMap<String, Object>(); //封装分页所需要的对象
map.put("total", total); //total为long类型
map.put("rows", list); //list为分页后的list ,将map转化json对象响应
(5)排序

9.下拉框(combobox:单选、多选)、标签栏(tabs)

(1)下拉框

② $(“选择器”).combobox( {} );

(2)tabs

10.树(tree)

(1)以html方式创建tree

(2)url动态加载tree的每个节点
① tree指定一个属性:url
② 要求服务器端响应的数据
a. 数据必须是相应成数组形式的数据
b. 每个节点信息属性要求
id属性:
text属性: 节点显示的文本.
children属性: 子节点信息 ( {id text children} )
例如:
[
{id:"1000",text:"图书", children: [{id:"10001",text:"小说"},{id:"10002",text:"计算机图书"}] },
{id:"2000",text:"电子产品"},
{id:"3000",text:"衣服"},
]
③ 通过标签引用url响应的结果,填充在tree中


    $("#tree").tree({
    url:"响应tree需要的数据的控制器路径uri"
    });
    使用:
    ① 节点事件

    ② 加载对象及节点属性

    节点属性:

    11.手风琴(accordion)、布局(layout)

    (1)手风琴 accordion
    ① html标签

    区域1
    区域2
    ② easyui插件名:$("外部div").accordion();

    (2)布局 layout
    效果:

    使用:
    插件名easyui-layout

    ## 12.实战:layout、accordion、tree、tabs、datagrid等综合使用 项目说明:使用tree显示图书分类二级标题(节点),点击分类标题,将该类node.id传入要加载该类下的图书的信息的jsp页面(用${param.categoryId}接收),然后将页面使用tabs加载过来,如图:

    处理代码:
    ① 实体:响应TreeNode实体所对应的json对象,tree插件接收后会自动对结果加载显示
    public class TreeNode {
    //属性名必须写tree控件定义好的key
    private int id; //节点ID,对加载远程数据很重要
    private String text; //显示节点文本
    private String state="open"; //节点状态(展开与否),'open' 或 'closed',默认:'open'
    private boolean checked; //表示该节点是否被选中
    private Map attributes; //被添加到节点的自定义属性
    private List children; //一个节点数组声明了若干节点,第二级分类列表
    有无参构造、getters、setters省略
    }
    控制器:方法返回值为List转化的json对象
    ② 前端:layout布局的jsp页面代码(要引入easyUI样式)

    	</head>
    	<body class="easyui-layout">   <!—布局-->
    <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div>   
    <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div>   
    <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div>   
    <div data-options="region:'west',title:'West',split:true" style="width:300px;">
    			<div id="aa" class="easyui-accordion" data-options="fit:true">   <!—手风琴-->
    	    		<div title="Title" data-options="iconCls:'icon-reload',selected:true" style="padding:10px;">   
    	        		<ul id="categoryTree"></ul> 
    	   	 		</div>
    	    		<div title="Title2">
    	        		other…
    	    		</div>
    			</div>
    		</div>
    		<div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;">
    			<div id="myTab">  	<!—tabs-->
    				<div title="欢迎页" style="padding:20px;" data-options="closable:true">   
    	        		欢迎使用页面
    	    		</div>
    			</div>
    		</div>
    	</body>
    ③ 前端:接收分类id,并将数据加载到datagrid中的展示页面
    	<head>
    	<script type="text/javascript">
    		$(function(){
    			$("#myDatagrid").datagrid({
    				url:"getBookByCategory",
    				queryParams:{"categoryid":${param.id}},
    				pagination:true,
    				title:"图书列表",
    				columns:[[
    					{title:"编号",field:"bookId"},
    					{title:"名字",field:"bookName"},
    					{title:"价格",field:"bookPrice"},
    					{title:"出版时间",field:"bookDate"}
    				]]
    			});
    		});
    	</script>
    	</head>
    	<body>
    		<table id="myDatagrid"></table>
    	</body>
    
    posted @ 2020-03-23 17:11  与乐i  阅读(402)  评论(0编辑  收藏  举报
    Live2D
    // 生成目录索引列表 //侧边栏目录索引