简介:
easy UI是类似于jQuery UI的插件库
注意:多脚本同时使用时,注意脚本冲突问题。
常用插件:
1.tree插件(tree插件实现动态树形菜单)
2.datagrid插件(datagrid插件构建列表展示远程数据)
1.tree插件
常用语法:$(selector).tree([settings]);
常用属性:
常用方法及事件:
案例:(实现效果)
步骤如下:
(1).引入需要脚本配置
<script type="text/javascript" src="../jquery-easyui-1.2.6/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="../jquery-easyui-1.2.6/jquery.easyui.min.js"></script> <link rel="stylesheet" href="../jquery-easyui-1.2.6/demo/demo.css" type="text/css"></link> <link rel="stylesheet" href="../jquery-easyui-1.2.6/themes/icon.css" type="text/css"></link> <link rel="stylesheet" href="../jquery-easyui-1.2.6/themes/default/easyui.css" type="text/css"></link>
(2).书写tree_data.json关于json配置的文件
[ {"id":1,"text":"S11","state":"open", "children":[{"id":11,"text":"Node 11"}, {"id":12,"text":"Node 12"}] }, {"id":2,"text":"Node 2","state":"closed"} ]
(3).进行获取json,进行页面渲染。
<script type="text/javascript"> $(function(){ $("#easyui-tree").tree({ url:'tree_data.json', }); }); </script> </head> <body> <div class="demo-tip icon-tip"></div> <h1>easyUI tree</h1> <ul id="easyui-tree"> </ul> </body>
(4).然后就是tree插件的一些属性用法,及方法和事件解析:
注意:属性展示效果的同时,要避免冲突,单个实现效果展示。
<!-- 小图标特效脚本 --> <link rel="shortcut icon" type="image/x-icon" href="<%=path %>/img/favicon.ico" /> <script type="text/javascript"> $(function(){ $("#easyui-tree").tree({ url:'tree_data.json', checkbox:true, onBeforeLoad:function(node,param){ // alert('开始请求数据'); //return false; }, onLoadSuccess:function(node,data){ //alert('请求数据成功'); }, onLoadError:function(){ // alert('加载失败'); }, //当用户点击一个节点时触发 onClick:function(node){ //通过控制台查看书写属性的区别之别,大部分是进行获取一个id或者子节点的调试及新加子节点 console.log($('#easyui-tree').tree('getNode',node.target)); alert($(this).tree('getNode',node.target).checked); console.log($('#easyui-tree').tree('getData',node.target)); console.log($('#easyui-tree').tree('getRoot',node.target)); console.log($('#easyui-tree').tree('getChildren',node.target)); if(($('#easyui-tree').tree('getChildren',node.target).length)==0){ $('#easyui-tree').tree('append',{ parent:node.target, data:[{text:'新加的'}] }); } }, //onDblClick当用户双击一个节点时触发 onDblClick:function(node){ $(this).tree('toggle',node.target); }, //animate:true, //级联选项卡 cascadeCheck:true, onlyLeafCheck:false, //拖拽 dnd:true, }); }); //button里定义的方法,进行获取功能选项 //后期可进行功能分配 function sb(){ $('#easyui-tree').tree('loadData',[{text:'number11'}]); // $('#easyui-tree').tree('reload'); //console.log($('#easyui-tree').tree('getChecked')); //console.log($('#easyui-tree').tree('getSelected')); //console.log($('#easyui-tree').tree('find',12)); /* var node= $('#easyui-tree').tree('find',12); $('#easyui-tree').tree('select',node.target); */ /* var node= $('#easyui-tree').tree('find',12); $('#easyui-tree').tree('uncheck',node.target); */ /* var node= $('#easyui-tree').tree('find',1); $('#easyui-tree').tree('collapse',node.target); */ //$('#easyui-tree').tree('expandAll'); } </script> </head> <body> <div class="demo-tip icon-tip"></div> <h1>easyUI tree</h1> <ul id="easyui-tree"> <li>S1</li> <li>S2</li> <li>Y2</li> </ul> <input type="button" id="used" value="功能性按钮" onclick="sb()"/> </body>
经验:
tree菜单数据要求使用json格式,并且符合其方法要求,建议格外小心,以避免不必要的麻烦。
2.datagrid插件
语法:$(selector).datagrid([settings]);
常用属性:
常用方法:
常用事件:
案例效果图:
步骤如下:
(1).创建实体类GridNode,以备资源进行获取属性
private Long id; //id private String title; //标题 private String options; //备选项数 private String participants;//参选人数
(2).创建datagrid_server.jsp进行构造数据,以及分页显示(服务器端代码)
% //构造测试数据 List<GridNode> list=new ArrayList<GridNode>(); list.add(new GridNode(1L,"选出你心目中最好的下载工具","2","6")); list.add(new GridNode(2L,"选出你心目中最好的下载工具","2","6")); list.add(new GridNode(3L,"选出你心目中最好的下载工具","5","4")); list.add(new GridNode(4L,"选出你心目中最好的下载工具","2","6")); list.add(new GridNode(5L,"选出你心目中最好的下载工具","8","5")); list.add(new GridNode(6L,"选出你心目中最好的下载工具","2","5")); list.add(new GridNode(7L,"选出你心目中最好的下载工具","7","6")); list.add(new GridNode(8L,"选出你心目中最好的下载工具","3","9")); list.add(new GridNode(9L,"选出你心目中最好的下载工具","20","6")); list.add(new GridNode(10L,"选出你心目中最好的下载工具","2","14")); list.add(new GridNode(11L,"选出你心目中最好的下载工具","12","6")); list.add(new GridNode(12L,"选出你心目中最好的下载工具","2","6")); //获取客户端传递的分页参数 Integer pageSize=Integer.parseInt(request.getParameter("rows")); //默认参数rows表示每页显示记录条数 Integer pageNumber=Integer.parseInt(request.getParameter("page")); //默认参数page表示的当前页数 StringBuilder builder = new StringBuilder("{"total":"+list.size()+","rows":["); int start=(pageNumber-1)*pageSize; //计算分页开始记录数 int end=start+pageSize; //计算分页结束记录数 //根据分页起始参数构建当前页的列表数据 for(int i=start;i<end&&i<list.size();i++){ GridNode gn=list.get(i); builder.append("{"id":""+gn.getId()+"","title":""+gn.getTitle()+"","options":"+gn.getOptions()+","participants":"+gn.getParticipants()+"},"); } String gridJSON=builder.toString(); if(gridJSON.endsWith(",")){ gridJSON=gridJSON.substring(0, gridJSON.lastIndexOf(",")); } out.print(gridJSON+"]}"); %>
(3).创建datagrid1.jsp进行获取资源,然后进行设定属性
<script type="text/javascript"> $(function(){ $('#dg').datagrid({ //远程请求数据的url路径 url:'<%=path%>/datagrid/datagrid_server.jsp', 800, height:300, //表头的小头标 iconCls:'icon-search', //显示行号 rowNumbers:true, //显示底部分页栏 pagination:true, //默认显示每页记录数 pageSize:5, pageList:[5,10,15], //指定列 columns:[[ {field:'ck',checkbox:true}, {field:'title',title:'投票标题',408}, {field:'options',title:'备选项数',60,align:'center'}, {field:'participants',title:'参与人数',60,align:'center'} ]], loadMsg:"正努力为您加载中......", //只允许选中一行 singleSelect:true, //隔行变色 striped:true, rownumbers:true, }); }); </script> </head> <body> <!-- 定义用来存放列表的空间 --> <table id="dg" title="投票管理" class="easyui-grid"></table> </body>
谨记每天要做的事。