JQuery EasyUI入门

╰+攻爆jí腚メ 2022-07-13 11:13 349阅读 0赞

JQuery EasyUI入门

@(JavaScript)[jQuery, EasyUI, 入门]

  • JQuery EasyUI入门

    • 基本概述
    • 案例

      • Layout布局
      • Accordion手风琴
      • Tab选项卡

        • 同一选项卡只能打开一个
      • messager消息框
      • menubutton菜单按钮
      • datagrid数据表格

        • 数据表格的基本使用

          • json内容
          • html文件
        • 带编辑功能的数据表格

          • json内容
          • html文件
        • 跨行跨列的数据表格

          • json内容
          • html文件
        • datagrid处理复杂json数据
        • datagrid使用load方法
      • combobox下拉列表框

        • json内容
        • html文件
      • combotree下拉树

基本概述

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

——参考《百度百科》

官网:Jquery EasyUI官网、Jquery EasyUI中文网

PS:可以到官网或者中文网完整的学习easyUI的组件,以下是一些自己写的小案例。

案例

Layout(布局)

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>layout测试</title>
  7. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
  8. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
  10. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
  11. </head>
  12. <body class="easyui-layout">
  13. <!-- 分为五个区域 -->
  14. <div style="height: 100px;" data-options="region:'north'">北部区域</div>
  15. <div style="width: 200px;" data-options="region:'west'">西部区域</div>
  16. <div style="" data-options="region:'center'">中心区域</div>
  17. <div style="width: 100px;" data-options="region:'east'">东部区域</div>
  18. <div style="height: 50px;" data-options="region:'south'">南部区域</div>
  19. </body>
  20. </html>

Accordion(手风琴)

  1. <div style="" data-options="region:'center'">
  2. <div class="easyui-tabs" data-options="fit:true">
  3. <div data-options="iconCls:'icon-save', closable:true" title="系统菜单">内容1</div>
  4. <div data-options="iconCls:'icon-remove'" title="业务菜单">内容2</div>
  5. </div>
  6. </div>

Tab(选项卡)

  1. <div style="" data-options="region:'center'">
  2. <div class="easyui-tabs" data-options="fit:true">
  3. <div data-options="iconCls:'icon-save', closable:true" title="系统菜单">内容1</div>
  4. <div data-options="iconCls:'icon-remove'" title="业务菜单">内容2</div>
  5. </div>
  6. </div>

同一选项卡只能打开一个

  1. <div style="width: 200px;" data-options="region:'west'">
  2. <div class="easyui-accordion" data-options="fit:true">
  3. <div data-options="iconCls:'icon-save'" title="系统菜单">
  4. <a id="btn" class="easyui-linkbutton">按钮</a>
  5. </div>
  6. <div data-options="iconCls:'icon-remove'" title="业务菜单">内容2</div>
  7. </div>
  8. </div>
  9. <div style="" data-options="region:'center'">
  10. <div id="et" class="easyui-tabs" data-options="fit:true">
  11. <div data-options="iconCls:'icon-save', closable:true" title="系统菜单">内容1</div>
  12. <div data-options="iconCls:'icon-remove'" title="业务菜单">内容2</div>
  13. </div>
  14. </div>
  15. <script type="text/javascript"> $(function(){ $("#btn").click(function() { var isExists = $("#et").tabs("exists", "标题"); if(isExists) { $("#et").tabs("select","标题"); } else { $("#et").tabs("add", { title:"标题", closable:true, iconCls:"icon-save", content:"<iframe frameborder='no' height='100%' width='100%' src='3-tabs.jsp'></iframe>" }); } }); }); </script>

messager(消息框)

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Messager的使用</title>
  7. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
  8. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
  10. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
  11. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/locale/easyui-lang-zh_CN.js"></script>
  12. <script type="text/javascript"> $(function() { // $.messager.alert("标题", "一条消息", "info"); /* $.messager.confirm("标题", "确认消息?", function(val) { alert(val); }); */ /* $.messager.prompt("标题", "请输入", function(message) { alert(message); }); */ // $.messager.progress(); $.messager.show({ title:'标题', msg:'这是一条消息,五秒后会消失', timeout:5000, showType:'slide', showSpeed:1000 }); }); </script>
  13. </head>
  14. <body>
  15. </body>
  16. </html>

menubutton(菜单按钮)

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>MenuButton的使用</title>
  7. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
  8. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
  10. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
  11. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/locale/easyui-lang-zh_CN.js"></script>
  12. </head>
  13. <body>
  14. <a id="mb" class="easyui-menubutton" data-options="iconCls:'icon-help', menu:'#menudiv'">功能菜单</a>
  15. <div id="menudiv">
  16. <div data-options="iconCls:'icon-save'">保存</div>
  17. <div data-options="iconCls:'icon-edit'">修改</div>
  18. <div class="menu-sep"></div>
  19. <div data-options="iconCls:'icon-remove'">删除</div>
  20. </div>
  21. </body>
  22. </html>

datagrid(数据表格)

数据表格的基本使用

json内容
  1. {
  2. "total": 100,
  3. "rows":[ {"id":"001","name":"王五","price":31232,"age":20}, {"id":"002","name":"赵六","price":32132,"age":20} ] }
html文件
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>DataGrid的使用</title>
  7. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
  8. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
  10. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
  11. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/locale/easyui-lang-zh_CN.js"></script>
  12. <script type="text/javascript"> $(function() { $("#dg").datagrid({ url:'datagrid_data.json', columns:[[ {field:"id",title:"编号",checkbox:true}, {field:"name",title:"姓名"}, {field:"price",title:"价格"}, {field:"age",title:"年龄"} ]], rownumbers:true, toolbar: [ {text:'编辑', iconCls: 'icon-edit', handler: function(){ alert('edit'); } }, {text:'帮助', iconCls: 'icon-help', handler: function(){ alert('help'); }} ], pagination:true, pageList:[10,30,50] }); }); </script>
  13. </head>
  14. <body>
  15. <!-- 1.将页面中静态HTML代码渲染为datagrid样式 -->
  16. <table class="easyui-datagrid">
  17. <thead>
  18. <tr>
  19. <th data-options="field:'id'">编号</th>
  20. <th data-options="field:'name'">姓名</th>
  21. <th data-options="field:'price'">价格</th>
  22. </tr>
  23. </thead>
  24. <tbody>
  25. <tr>
  26. <td>001</td>
  27. <td>张三</td>
  28. <td>123</td>
  29. </tr>
  30. <tr>
  31. <td>002</td>
  32. <td>李四</td>
  33. <td>321</td>
  34. </tr>
  35. </tbody>
  36. </table>
  37. <hr/>
  38. <!-- 2.发送ajax请求获取动态json数据动态创建datagrid -->
  39. <table class="easyui-datagrid" data-options="url:'datagrid_data.json'">
  40. <thead>
  41. <tr>
  42. <th data-options="field:'id'">编号</th>
  43. <th data-options="field:'name'">姓名</th>
  44. <th data-options="field:'price'">价格</th>
  45. </tr>
  46. </thead>
  47. </table>
  48. <hr/>
  49. <!-- 3.调用easyUI提供的API动态创建datagrid -->
  50. <table id="dg"></table>
  51. </body>
  52. </html>

带编辑功能的数据表格

json内容
  1. {
  2. "total": 100,
  3. "rows":[ {"id":"001","name":"张三","price":12345,"age":20,"birthday":"1995-01-01"}, {"id":"002","name":"李四","price":54321.2,"age":30,"birthday":"1996-01-01"}, {"id":"003","name":"王五","price":123.45,"age":20,"birthday":"1997-08-31"}, {"id":"004","name":"赵六","price":999.11,"age":50,"birthday":"1995-05-01"}, {"id":"005","name":"钱七","price":888,"age":24,"birthday":"1995-02-21"} ] }
html文件
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>DataGrid的使用——编辑功能</title>
  7. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
  8. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
  10. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
  11. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/locale/easyui-lang-zh_CN.js"></script>
  12. <script type="text/javascript"> // 全局变量 // 选中行索引 var editIndex; $(function() { $("#dg").datagrid({ url:'datagrid_data.json', columns:[[ {field:"id",title:"编号",checkbox:true,width:100}, {field:"name",title:"姓名",editor:{type:'validatebox',options:{required:true}},width:100}, {field:"price",title:"价格",editor:{type:'numberbox',options:{precision:2,required:true}},width:100}, {field:"age",title:"年龄",editor:{type:'numberbox',options:{precision:0,required:true}},width:100}, {field:"birthday",title:"生日",editor:{type:'datebox',options:{required:true}},width:100}, ]], striped : true, // 斑马线 rownumbers:true, // 行号 toolbar: [ {text:'添加', iconCls: 'icon-add', handler: function(){ // 如果选中行,第二次点击则保存并添加新的一行 if(editIndex != undefined) { $("#dg").datagrid("endEdit", editIndex); } if(editIndex == undefined){ // 清除所有选择 $("#dg").datagrid("clearSelections"); $('#dg').datagrid('insertRow',{ index: 0, row: {} }); editIndex = 0; $("#dg").datagrid("beginEdit", editIndex); } }}, {text:'编辑', iconCls: 'icon-edit', handler: function(){ // 如果选中行,第二次点击则保存 if(editIndex != undefined) { $("#dg").datagrid("endEdit", editIndex); } else { var rows = $("#dg").datagrid('getSelections'); // 获取选中行 if(rows.length != 1) { $.messager.alert("提示消息","请选择单行!!!"); } else { editIndex = $("#dg").datagrid("getRowIndex", rows[0]); $("#dg").datagrid("beginEdit", editIndex); } } }}, {text:'删除', iconCls: 'icon-remove', handler: function(){ var rows = $("#dg").datagrid('getSelections'); // 删除选中行 for(var i = 0; i < rows.length; i++) { $("#dg").datagrid('deleteRow',$("#dg").datagrid("getRowIndex", rows[i])); } }}, {text:'保存', iconCls: 'icon-save', handler: function(){ if(editIndex != undefined) { $("#dg").datagrid("endEdit", editIndex); } }}, {text:'取消', iconCls: 'icon-cancel', handler: function(){ if(editIndex != undefined) { // 取消编辑 $("#dg").datagrid("cancelEdit", editIndex); // 获取编辑行的id,如果是undefined,证明未定义,可以删除 if($('#dg').datagrid('getRows')[editIndex].id == undefined){ $("#dg").datagrid('deleteRow',editIndex); } editIndex = undefined; } }} ], pagination:true, pageList:[5,10,30,50], onAfterEdit : function(rowIndex, rowData, changes){ console.info(rowData); editIndex = undefined; }, onDblClickRow: function(rowIndex, rowData, changes) { console.info(rowIndex); if(editIndex == undefined) { $('#dg').datagrid('beginEdit',rowIndex); editIndex = rowIndex; } } }); }); </script>
  13. </head>
  14. <body>
  15. <!-- 3.调用easyUI提供的API动态创建datagrid -->
  16. <table id="dg"></table>
  17. </body>
  18. </html>

跨行跨列的数据表格

json内容
  1. {
  2. "total": 100,
  3. "rows":[ {"id":"001","name":"张三","price":12345,"age":20,"birthday":"1995-01-01"}, {"id":"002","name":"李四","price":54321.2,"age":30,"birthday":"1996-01-01"}, {"id":"003","name":"王五","price":123.45,"age":20,"birthday":"1997-08-31"}, {"id":"004","name":"赵六","price":999.11,"age":50,"birthday":"1995-05-01"}, {"id":"005","name":"钱七","price":888,"age":24,"birthday":"1995-02-21"} ] }
html文件
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>DataGrid的使用——标题跨行跨列</title>
  7. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
  8. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
  10. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
  11. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/locale/easyui-lang-zh_CN.js"></script>
  12. <script type="text/javascript"> // 全局变量 // 选中行索引 var editIndex; $(function() { $("#dg").datagrid({ url:'datagrid_data.json', columns:[[ { field:"id", title:"编号", checkbox:true, width:100, rowspan:2 },{ field:"name", title:"姓名", editor:{type:'validatebox',options:{required:true}}, width:100, rowspan:2 },{ field:"price", title:"价格", editor:{type:'numberbox',options:{precision:2,required:true}}, width:100, rowspan:2 },{ title:"其他信息", colspan:2 } ], [ { field:"age", title:"年龄", editor:{type:'numberbox',options:{precision:0,required:true}}, width:100 },{ field:"birthday", title:"生日", editor:{type:'datebox',options:{required:true}}, width:100 } ]], striped : true, // 斑马线 rownumbers:true // 行号 }); }); </script>
  13. </head>
  14. <body>
  15. <!-- 3.调用easyUI提供的API动态创建datagrid -->
  16. <table id="dg"></table>
  17. </body>
  18. </html>

datagrid处理复杂json数据

  1. { field : 'noticebill.telephone', title : '联系方式', width : 100, align : 'center', formatter: function(value,row,index) { return row.noticebill['telephone']; }
  2. }

datagrid使用load方法

  1. $(function(){
  2. //提供一个工具方法,作用是将表单中所有的输入项和值转换为json数据
  3. $.fn.serializeJson=function(){
  4. var serializeObj={};
  5. var array=this.serializeArray();
  6. $(array).each(function(){
  7. if(serializeObj[this.name]){
  8. if($.isArray(serializeObj[this.name])){
  9. serializeObj[this.name].push(this.value);
  10. }else{
  11. serializeObj[this.name]=[serializeObj[this.name],this.value];
  12. }
  13. }else{
  14. serializeObj[this.name]=this.value;
  15. }
  16. });
  17. return serializeObj;
  18. }
  19. $("#btn").click(function(){
  20. //调用上面提供的工具方法,将指定的表单输入项转为json数据,作为过滤条件
  21. var p = $("searchForm").serializeJson() //{key:value,key:value}
  22. console.info(p);
  23. // 重新发送ajax,提供过滤条件
  24. $("#grid").datagrid('load', p);
  25. $("#searchForm").get(0).reset();// 重置查询表单
  26. $("#searchWindow").window("close"); // 关闭窗口
  27. });
  28. });

combobox(下拉列表框)

json内容

  1. [
  2. {"id":"001","text":"软件部"},
  3. {"id":"002","text":"市场部"},
  4. {"id":"003","text":"人事部"}
  5. ]

html文件

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Combobox的使用</title>
  7. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
  8. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
  9. <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
  10. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
  11. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/locale/easyui-lang-zh_CN.js"></script>
  12. <script type="text/javascript"> </script>
  13. </head>
  14. <body>
  15. <!-- 1. 将页面静态的html代码渲染为combobox样式 -->
  16. <!-- <select id="cb" class="easyui-combobox" name="dept"> <option value="aa">研发部</option> <option>市场部</option> <option>人事部</option> </select> -->
  17. <!-- 2. html标签发送ajax请求获取动态json数据创建combobox -->
  18. <!-- <input id="cc" class="easyui-combobox" name="dept" data-options="valueField:'id',textField:'text',url:'combobox_data.json'" /> -->
  19. <!-- 3. JavaScript发送ajax请求获取动态json数据创建combobox -->
  20. <input id="cd" class="easyui-combobox" name="dept"/>
  21. <script type="text/javascript"> $("#cd").combobox({ url:'combobox_data.json', valueField:'id', textField:'text' }); </script>
  22. </body>
  23. </html>

combotree(下拉树)

  1. [{
  2. "id":1,
  3. "text":"My Documents",
  4. "children":[{ "id":11, "text":"Photos", "state":"closed", "iconCls":"icon-save", "children":[{ "id":111, "text":"Friend" },{ "id":112, "text":"Wife" },{ "id":113, "text":"Company" }] },{ "id":12, "text":"Program Files", "children":[{ "id":121, "text":"Intel" },{ "id":122, "text":"Java", "attributes":{ "p1":"Custom Attribute1", "p2":"Custom Attribute2" } },{ "id":123, "text":"Microsoft Office" },{ "id":124, "text":"Games", "checked":true }] },{ "id":13, "text":"index.html" },{ "id":14, "text":"about.html" },{ "id":15, "text":"help.html", "iconCls":"icon-help" }] }]
  5. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9. <meta charset="UTF-8">
  10. <title>Combotree的使用</title>
  11. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/default/easyui.css">
  12. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/easyui/themes/icon.css">
  13. <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script>
  14. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/jquery.easyui.min.js"></script>
  15. <script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui/locale/easyui-lang-zh_CN.js"></script>
  16. <script type="text/javascript"> $(function(){ $("#ct2").combotree({ url:'combotree_data.json', width:200, required:true }); }); </script>
  17. </head>
  18. <body>
  19. <!-- 方式1html标签 -->
  20. <select id="ct1" name="ct1" class="easyui-combotree" style="width:200px;" data-options="url:'combotree_data.json',required:true"></select>
  21. <hr/>
  22. <!-- 方式2JavaScript代码 -->
  23. <input id="ct2" name="ct2">
  24. </body>
  25. </html>

发表评论

表情:
评论列表 (有 0 条评论,349人围观)

还没有评论,来说两句吧...

相关阅读