EasyUI组件使用

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


使用

  • 环境搭建
    导入响应的css和js
    <link rel="stylesheet" type="text/css" href="/ee_Day23easyui/css/easyui.css">
    <link rel="stylesheet" type="text/css" href="/ee_Day23easyui/css/icon.css">
    <link rel="stylesheet" type="text/css" href="/ee_Day23easyui/css/demo.css">
    <script type="text/javascript" src="/ee_Day23easyui/js/jquery.min.js"></script>
    <script type="text/javascript" src="/ee_Day23easyui/js/jquery.easyui.min.js"></script>
  • 布局设计
    采用Layout布局,嵌套accordion分类,和tree的菜单结果,Tabs选项卡,以及dataGrid数据表格显示查询数据。
  • 过程
    需求:点击菜单栏中的“商品分类”,在右侧显示出查询到的商品,并且可以自定义每页显示的个数。
<span><a href="Javascript:void(0)" onclick="addTab()">商品分类</a></span>
<script type="text/javascript">
    //点击查询添加选项卡
    function addTab(){
        //判断选项卡是否存在
        var flag=$("#tt").tabs('exists','showProduct');
        if(flag){
            //存在则显示
            $("#tt").tabs('select','showProduct');
        }else{
            //不存在则天剑
            $("#tt").tabs('add',{
                title:'showProduct',
                selected:true,
                closable:true,
                /* iframe是一个框架集进行加载任意路径 */
                content:"<iframe src='/ee_Day23easyui/productList.jsp' style='width:99%;height:99%;border:0px'>"
            })
        }
    }

</script>

Tab中显示的内容来自另外一个jsp,这个jsp是在一个table表格中动态向dataGrid添加数据。

<script type="text/javascript">
//通过js方式进行渲染
$(function(){
    $('#dg').datagrid({    
        url:'/ee_Day23easyui/ShowProductServlet',
        autoRowHeight:true,
        fit:true,
        fitColumns:true, 
        columns:[[    
            {field:'pid',title:'编号',width:100},    
            {field:'pname',title:'名称',width:100},    
            {field:'shop_price',title:'价格',width:100,align:'right'},    
            {field:'pimage',title:'pimage',formatter:function(value){
                return "<img src="+value+" style='width:60px' >";
            }}    
        ]],
        toolbar: [{
            iconCls: 'icon-edit',
            handler: function(){alert('编辑按钮')}
        },'-',{
            iconCls: 'icon-help',
            handler: function(){alert('帮助按钮')}
        }],
        pagination:true,//显示工具栏
        pageNumber:1, //设置默认显示的页数
        pageSize:5,//初始化时显示的个数5
        pageList:[5,10,15,20]
    });  
});
<body>
<table id="dg"></table>  
</body>

dataGrid中数据是通过请求一个servlet,查询数据库中的商品数据。由于服务器和客户端都是通过json数据传递的,所以从servlet得到的数据要进行转换。

  • JSON转换
String jsonStr = JSONArray.fromObject(list).toString();
或者
String jsonStr =  JSONObject.fromObject(map).toString();
  • 利用Gson包
    可以将所有类型的数据进行转换
Gson gson = new Gson();
String json = gson.toJson(pageBean);

这样就可以轻松的查询到数据啦,并且在不需要很多css设计的情况下拥有了美观的界面。

BootStrap和EasyUI

提到了EasyUI,不得不说Bootsrap,他们都是基于jQuery的,但各有不同的特点和功能,我们一起来看一下吧。

  • BootStrap主要用于响应式开发,兼容不同设备的浏览器,但没有ajax组件,ajax开发依赖程序员纯手写。
    BootStrap一般用于互联网项目的用户可见模块的开发,例如主页、商品页面等
    优点:BootStrap主要应用移动互联网。
    缺点:BootStrap 没有ajax组件。需要手写.get,.post,$.ajax();
  • EasyUI主要用于Ajax的数据交互的效果开发,虽然样式上不如BootStrap绚丽,但EasyUI有着丰富的ajax功能组件,我们只需要调用组件就能完成丰富的ajax效果。EasyUI一般用于项目后台管理员相关模块的开发,例如:商品管理,订单管理等JAVAEE级别。
  • 如果着重展示效果,对ajax没有特殊要求,使用BootStrap。如果频繁使用AJAX进行数据交互,那么使用EasyUI更加方便。总之各有各的特点,用对地方就是好的。