Easy-UI入门案例

Easy-UI是封装了前台逻辑以及显示的基于Jquery技术的前端框架.

Easy-UI特点

  • EasyUI支持两种渲染方式分别为javascript方式(如:$(‘#p’).panel({…}))和html标记方式(如:class=”easyui-panel”)
  • 支持HTML5(通过data-options属性)

Easy-UI常用组件

  • Base
  • Layout
  • Menu and Button
  • Form
  • Window
  • DataGrid and Tree
  • Extension

语法

属性

所有的属性都定义在jQuery.fn.{plugin}.defaults里面。例如,对话框属性定义在jQuery.fn.dialog.defaults里面。

事件

所有的事件(回调函数)也都定义在jQuery.fn.{plugin}.defaults里面。

方法

调用方法的语法:$(‘selector’).plugin(‘method’, parameter);

解释:
selector 是jQery对象选择器。
plugin 是插件的名称。
method 是相应插件现有的方法。
parameter 是参数对象,可以是一个对象、字符串等。

开发步骤

  • 下载程序库并导入EasyUI的CSS和Javascript文件

    <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">   
    <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">   
    <script type="text/javascript" src="easyui/jquery-1.7.2.min.js"></script>   
    <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>  
    
  • 通过标记或Javascript定义EasyUI组件

    <div id="p" class="easyui-panel" style="width:500px;height:200px;padding:10px;"   
    title="My Panel" iconCls="icon-save" collapsible="true">   
         The panel content    
    </div>  
    

入门案例

首页jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>客户关系管理系统</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css">
    <script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script>
    <script>
        $(function(){
            var p = $('body').layout('panel','west').panel({
                onCollapse:function(){
                    alert('collapse');
                }
            });
        });

        function addTab(title,url){
            //判断窗口是否已经打开,打开了就不再打开
            if ($('#tt').tabs('exists',title)){
                //已经打开不再打开
                $('#tt').tabs('select',title)
                return ;
            }
            $('#tt').tabs('add',{
                title:title,
                content:"<iframe src='"+url+"' style='width:100%;height:100%'  />",
                closable:true,
            });
        }
    </script>
</head>
<body class="easyui-layout">
    <div region="north" border="false" style="height:75px;background:#B3DFDA;padding:10px"><h1>客户关系管理系统</h1></div>
    <div region="west" split="true" title="菜单" style="width:150px;">
            <div id="aa" class="easyui-accordion" fit="true">
            <div title="用户管理" iconCls="icon-pencil" style="overflow:auto;padding:10px;">
                <a href="javascript:void(0)" onclick="addTab('用户列表','${pageContext.request.contextPath}/list.jsp')">用户列表</a>
            </div>
            <div title="客户管理" iconCls="icon-pencil" selected="true" collapsed="true">
                <a href="javascript:void(0)" >客户列表</a>
            </div>
            <div title="联系人管理" iconCls="icon-pencil" style="padding:10px;">
                <a href="javascript:void(0)" >联系人列表</a>
            </div>
    </div>
    </div>
    <div region="center" >
        <div id="tt" class="easyui-tabs" tools="#tab-tools" fit="true">
            <div title="主界面" tools="#p-tools" style="padding:20px;" >
                <h2><font color="gray">欢迎您登陆!</font></h2>
            </div>
        </div>
    </div>
</body>
</html>

用户列表jsp(crud)

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户列表</title>
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css">
    <script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/easyui/locale/easyui-lang-zh_CN.js"></script>
    <script type="text/javascript">
        $(function(){
            $('#test').datagrid({
                singleSelect:true,
                title:'用户列表',
                iconCls:'icon-save',
                nowrap: false,
                striped: true,
                collapsible:false,
                url:'${pageContext.request.contextPath}/UserAction_list',//加载表格后台数据
                sortName: 'id',//指定排序列
                sortOrder: 'asc',//升序
                remoteSort: false,
                idField:'id',
                frozenColumns:[[  //配置冻结列
                    {field:'ck',checkbox:true}, //准备多选框列
                    {title:'id',field:'user_id',width:80,sortable:true}//主键列
                ]],
                columns:[[
                    {field:'user_code',title:'登陆名',width:120},
                    {field:'user_name',title:'昵称',width:220,rowspan:2,sortable:false,},
                ]],
                pagination:true,//是否分页
                rownumbers:true,//是否显示行号
                toolbar:[{
                    id:'btnadd',
                    text:'添加用户',
                    iconCls:'icon-add',
                    handler:function(){
                        //清空表单
                        $('#ff').form('clear');
                        open1();
                    }
                },{
                    id:'btncut',
                    text:'修改用户',
                    iconCls:'icon-pencil',
                    handler:function(){
                        //获得被选中的行并回显数据
                        getSelected();
                    }
                },{
                    id:'btnsave',
                    text:'删除用户',
                    iconCls:'icon-cancel',
                    handler:function(){
                        //获得被选中的行
                        var selected = $('#test').datagrid('getSelected');
                        //未获得,提示
                        if (!selected){
                            alert("请选择一行再操作!");
                            return;
                        }else {
                            alert("请选中一行!");
                        }
                        //发送ajax请求访问后台删除用户
                            //成功,刷新表单
                        $.post("${pageContext.request.contextPath}/UserAction_list",
                                { user_id: selected.user_id },
                           function(data){
                             alert("操作成功!");
                         });
                        //刷新表单
                        $('#test').datagrid('reload');
                    }
                }]
            });
            var p = $('#test').datagrid('getPager');
            $(p).pagination({
                onBeforeRefresh:function(){
                    alert('before refresh');
                }
            });
        });

        function resize(){
            $('#w').window({
                title: 'New Title',
                width: 600,
                modal: true,
                shadow: false,
                closed: false,
                height: 300
            });
        }
        function open1(){
            $('#w').window('open');
        }
        function close1(){
            $('#w').window('close');
        }
        //指定表单是ajax提交
        $('#ff').form({ 
            url:'${pageContext.request.contextPath}/UserAction_regist', 
            onSubmit:function(){return true},
            success: function(data){    
                alert(data);    
                //清空表单数据
                $('#w').window('clear');
                //关闭窗口
                close1();
                //刷新列表
                $('#test').datagrid('reload');    
            }    
        });  
        //提交表单
        function submitForm() {
            $('#ff').submit();  
        }
        //获得被选中的行
        function getSelected(){
            var selected = $('#test').datagrid('getSelected');
            if (selected){//如果选中
                // alert(selected.user_id+":"+selected.user_name+":"+selected.user_code); 
                //回显数据
                $('#ff').form('load',{
                    user_id:selected.user_id,
                    user_name:selected.user_name,
                    user_code:selected.user_code,
                });
                //显示窗口
                open1();
            }else {
                alert("请选中一行!");
            }
        }
    </script>
</head>
<body>
    <table id="test" ></table>
    <div id="w" class="easyui-window" title="操作" closed="true" iconCls="icon-save" style="width:500px;height:200px;padding:5px;">
         <form id="ff" method="post" novalidate>
            <div>
                <label for="user_code">登录名:</label>
                <input class="easyui-validatebox" type="text" name="user_code" required="true"></input>
            </div>
            <div>
                <label for="user_name">昵&nbsp;称:</label>
                <input class="easyui-validatebox" type="text" name="user_name" required="true"></input>
            </div>
            <div>
                <label for="user_password">密&nbsp;码:</label>
                <input class="easyui-validatebox" type="text" name="user_password" required="true"></input>
            </div>
            <div>
                <input type="button"  onclick="submitForm()" value="提交" >
            </div>
        </form>
    </div>
</body>
</html>

案例总结

首页

  • layout
  1. 案例用了北,西,中间面板搭建整体框架。具体使用查API
  2. 布局容器有5个区域:北、南、东、西和中间。中间区域面板是必须的,边缘的面板都是可选的。每个边缘区域面板都可以通过拖拽其边框改变大小,也可以点击折叠按钮将面板折叠起来。
  • accodion

1.案例用来做菜单栏使用,使用ajax方式跳转链接
2.分类空间允许用户使用多面板,但在同一时间只会显示一个。每个面板都内建支持展开和折叠功能。点击一个面板的标题将会展开或折叠面板主体。面板内容可以通过指定的’href’属性使用ajax方式读取面板内容。用户可以定义一个被默认选中的面板,如果未指定,那么第一个面板就是默认的。

  • tabs

1.案例中用tabs搭建主界面,点击菜单时,跳转至主界面,相同的链接,只跳转一次。
2.选项卡显示一批面板。但在同一个时间只会显示一个面板。每个选项卡面板都有头标题和一些小的按钮工具菜单,包括关闭按钮和其他自定义按钮。

用户列表

  • datagride
    1.用于展示用户列表
    2.DataGrid以表格形式展示数据,并提供了丰富的选择、排序、分组和编辑数据的功能支持。单元格合并、多列标题、冻结列和页脚只是其中的一小部分功能。

添加用户

  • window

1.在用户列表中点击添加时,弹出窗口。
2.窗口控件是一个浮动和可拖拽的面板可以用作应用程序窗口。默认情况下,窗口可以移动,调整大小和关闭。它的内容也可以被定义为静态html或要么通过ajax动态加载。

  • form

1.用于显示添加客户的内容
2.form提供了各种方法来操作执行表单字段,比如:ajax提交, load, clear等等。当提交表单的时候可以调用validate方法检查表单是否有效。
3.使普通表单成为ajax提交方式的表单。

$('#ff').form({    
    url:...,    
    onSubmit: function(){    
        // do some check    
        // return false to prevent submit;    
    },    
    success:function(data){    
        alert(data)    
    }    
});    
// submit the form    
$('#ff').submit();  

修改用户

  • 表格改为单选

在datagrid中找到checkbox,singleSelect属性改为true

  • 获得选中行

    调用datagrid中的getSelected方法 返回第一个被选中的行或如果没有选中的行则返回null。

  • 回显要修改的数据

from中找到 load方法
方法描述:读取记录填充到表单中。数据参数可以是一个字符串或一个对象类型,如果是字符串则作为远程URL,否则作为本地记录。

删除用户

  • 获得选中行

调用datagrid中的getSelected方法 返回第一个被选中的行或如果没有选中的行则返回null。

  • 发送ajax请求删除客户

  • 删除后,刷新列表

调用datagrid中的reload方法。等同于’load’方法,但是它将保持在当前页。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值