easy ui插件


简介:

  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>


 谨记每天要做的事。

原文地址:https://www.cnblogs.com/hq-123/p/5970004.html