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>
    • 相关阅读:
      关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
      js 贷款计算器
      js 实现阶乘
      js 两点间距离函数
      composer Your requirements could not be resolved to an installable set of packages
      vue 项目优化记录 持续更新...
      vue 项目打包
      vue 真机调试页面出现空白
      vue 真机调试
      谈谈-Android状态栏的编辑
    • 原文地址:https://www.cnblogs.com/linanana/p/12553365.html
    Copyright © 2011-2022 走看看