zoukankan      html  css  js  c++  java
  • 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',{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="100px;"></div>   
      <div data-options="region:'west',title:'West',split:true" style="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>
    • 相关阅读:
      Linux下巧用my.cnf,mysql连接服务器不需要输入账号密码信息
      MySQL 5.6 my.cnf 参数说明
      Docker实战(七)之为镜像添加SSH服务
      Docker实战(六)之使用Dockerfile创建镜像
      Docker实战(五)之端口映射与容器互联
      Docker实战(四)之Docker数据管理
      Docker实战(三)之访问Docker仓库
      Docker实战(二)之操作Docker容器
      Docker实战(一)之使用Docker镜像
      ubuntu16.04之sudo问题
    • 原文地址:https://www.cnblogs.com/linanana/p/12553365.html
    Copyright © 2011-2022 走看看