一、概述

1.1 EasyUI是什么?
EasyUI全称是Jquery-EasyUI,它是基于Jquery的一个UI插件库,封装了许多实用的控件和功能,并且是完美支持HTML5网页的框架。提供的控件包括数据表格,树形表格,菜单,进度条,选项卡,日期组合框,调节器,对话框等等。

EasyUI的目标就是帮助Web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的JavaScript,也不要对CSS样式有深入的了解,开发者只需要了解一些简单的Html标签(table标签、form标签、div标签等)即可。

EasyUI开发前端页面的好处:

丰富的jQuery插件库
使用简单,可以快速开发出原型界面
支持html5,实现跨浏览器等等

二 常见控件

详情可以参考easyUI的官方文档 这里只是总结一些个人用的比较多的控件

布局控件

布局(layout)是有五个区域(北区 north、南区 south、东区 east、西区 west 和中区 center)的容器。中间的区域面板是必需的,边缘区域面板是可选的。每个边缘区域面板可通过拖拽边框调整尺寸,也可以通过点击折叠触发器来折叠面板。

<div id="cc" class="easyui-layout" data-options="fit:true">   
    <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:100px;"></div>   
    <div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;"></div>   
</div>

表格控件

数据网格(datagrid)以表格格式显示数据,并为选择、排序、分组和编辑数据提供了丰富的支持。数据网格(datagrid)的设计目的是减少开发时间,且不要求开发人员具备指定的知识。它是轻量级的,但是功能丰富。它的特性包括单元格合并,多列页眉,冻结列和页脚,等等。

创建表格的三种方式:

从现有表格元素基础上创建DataGrid
通过table标签创建DataGrid
通过js脚本创建DataGrid

这里只样式JS的方法

<table id="dg"></table>
-----------------------------------
	$('#dg').datagrid({
	    url:'datagrid_data.json',  
	    method:'get',
	    fit:true,  
	    columns:[[    
	        {field:'code',title:'编号',width:100},    
	        {field:'name',title:'名称',width:100},    
	        {field:'price',title:'价格',width:100,align:'right',formatter:function(value,row,index) {
	        	return value + "元";
	        }}    
	    ]]
	});  
});

DataGrid的主要方法

load:载入并显示第一页记录,通常用于执行条件查询功能;

$('#table').datagrid('load', {'参数名':'参数值', ...});

reload:重载表格数据,与load方法的功能相同。但是重载的是当前页面,而不是第一页;

$('#table').datagrid('reload');

getSelected:返回被选择的记录。例如:

{
	text:'修改',
	iconCls:'icon-edit',
	handler:function(){
		var row = $('#dg').datagrid('getSelected');
		$.messager.alert('你选择的值是:', row.code); 
	}
}

表单控件

form控件提供了各种方法来操作执行表单字段,比如:ajax提交, load, clear等等。当提交表单的时候,还可以调用validate方法检查表单是否合法。

<form id="ff" method="post">   
    <div>   
        <label for="name">Name:</label>   
        <input class="easyui-validatebox" type="text" name="name" data-options="required:true" />   
    </div>   
    <div>   
        <label for="email">Email:</label>   
        <input class="easyui-validatebox" type="text" name="email" data-options="validType:'email'" />   
    </div>   
</form>

验证框

<input id="email" class="easyui-validatebox" data-options="required:true,validType:'email'" />

输入框

TextBox(文本框)是一个增强的输入字段组件, 它允许用户非常简单的创建一组表单。它是一个用于构建其他组合控件的基础组件,如:combo,databox、spinner等。

<input class="easyui-textbox" data-options="iconCls:'icon-search',required: true" style="width:300px">

数值输入框

<input class="easyui-numberbox" data-options="iconCls:'icon-search',required: true,min:0,precision:2" style="width:300px">

日期输入框

<input id="dd" type="text" class="easyui-datebox" required="required"></input>

自己写的一些demo

<script type="text/javascript">
	var url;
	var st = new Array();
	st.push("普通用户");
	st.push("管理员");
	st.push("系统管理员");
	var sex = new Array();
	sex.push("男");
	sex.push("女");
	
	
		//模糊搜索
	function search() {
		var account=$("#account").textbox('getValue');
		var Mname=$("#Mname").textbox('getValue');
		$("#dd").datagrid('load',{
			'mname': Mname,
			'account':account
			
		})
		
	}
	//管理员内容展示
	$(function () {
		$("#dd").datagrid({
			url:"/manager/findManager",
			method: 'post',
			fitColums: true,
			columns:[[
				{'field': 'mid','title':'编号 ' ,width: 50},
				{'field': 'account','title':'账号 ',width: 200},
				{'field': 'password','title':'密码 ',width: 200},
				{'field': 'mname','title':'姓名 ',width: 180},
				{'field': 'type','title':'职责 ',width: '60px',formatter: function(value) {
					return st[value] ;
				}},
				{'field': 'sex','title':'性别 ',width: '50px',formatter: function(value) {
					return sex[value] ;}},
				{'field': 'email','title':'邮箱 ',width: '200px'},
				{'field': 'birthday','title':'生日 ',width: '200px'}
			]],
			pagination:true,
			pageSize:10,
			pageList: [10,20,50,100],
			singleSelect:true,
			toolbar:	
			[{
				iconCls: 'icon-add',
				text:'添加',
				handler: function(){ 
				$("#duihua").dialog("open");
				url="/manager/addManager";
				}
			},'-',{
				iconCls: 'icon-edit',
				text:'修改',
				handler: function(){var rowDate=$("#dd").datagrid("getSelected");if(rowDate==null){
					$.messager.alert("提示","请选择要需要改的记录");
					return;	}

					url="/manager/updateManager";				//获取数据
					var mid=rowDate.mid;
					var account=rowDate.account;
					var password=rowDate.password;
					
					var mname=rowDate.mname;
					//var type=st[rowDate.type];
					//var sex1=sex[rowDate.sex];
					
					var email=rowDate.email;
				
					var birthday=rowDate.birthday;
					
					//填充数据到对话框
					$("#mid").val(mid);
					
					$("#Eaaccount").textbox('setValue',account);
					$("#Epassword").textbox('setValue',password);
					$("#Ename").textbox('setValue',mname);
					
					//$("#type").textbox('setValue',type);
					//$("#sex").textbox('setValue',sex1);
					$("#email").textbox('setValue',email);
					$("#birthday").textbox('setValue',birthday);
					
					$("#duihua").dialog("open");
					
					}
			},'-',{
				iconCls: 'icon-remove',
				text:'删除 ',
				handler: function(){var rowDate=$("#dd").datagrid("getSelected");if(rowDate==null){
				$.messager.alert("提示","请选择要需要改的记录");
					return;	}
				
				$.messager.confirm('警告', '确认删除吗?', function(b) {
					if (b) {
						var mid=rowDate.mid;
						$.post("/manager/removeManager", "mid=" + mid, function(rt) {
							if (rt.status == "success") {
								// 刷新表格
								$("#dd").datagrid("reload");
							}
							$.messager.alert('提示', rt.msg);
						}, "json");
					}
				});
				}
			}]
		})
		
	});
	//对话框
	$("#duihua").dialog({
		title:'管理员信息',
		closed:true,
		width:500,
		height:400,
		modal:true, //对话框遮挡背景
		buttons: [{
			
			'text': '保存', // 按钮文本
			handler: function() { // 按钮事件
				//判断表单是否正确输入
				var b=$("#addManager").form("validate");
		
			if(b){	
			//验证表单
			var date=$("#addManager").serialize();
			
		
			
			$.post(url,date,function(rs){
				if(rs.status=="success"){
					
					//刷新表格
					$("#dd").datagrid("load");
					//关闭对话框
					$("#duihua").dialog('close');
					//清空表单
					$("#addManager").form("clear");
				}else{
					$.messager.alert('提示',rs.msg);
				}
				
			},"json");
			}
		
			
			}
			},{
	
			text:'取消',
			handler : function(){
				$("#duihua").dialog('close');
				
			}
			
		}
		]
		
	});
	
	
	
	</script>