最近公司培训EasyUI,就做下总结吧,给有需要的人,源码在文章最后。

1、最常用的表格

1
2
3
<div class="easyui-panel" data-options="region:'center'" style="padding: 20px">
     <table id="dg"></table>
 </div>

注意<table>标签,我们将利用这个标签进行表格加载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
$("#dg").datagrid({
    //---------------------------- 属性 Properties ----------------------------
    //请求类型 默认post
    method: "get",
    //请求url地址 默认null
    url: "../../../json/grid.json",
    toolbar: [{
        iconCls: 'icon-add',
        handler: function () {
            alert("add");
        }
    }, {
        iconCls: 'icon-edit',
        handler: function () {
            //alert("edit");
            console.log($("#dg").datagrid("getChecked"), $("#dg").datagrid("getSelected"));
        }
    }, {
        iconCls: 'icon-remove',
        handler: function () {
            alert("remove");
        }
    }],
    //是否分页  默认false
    pagination: true,
    //分页的位置 默认bottom ['top','bottom','both']
    pagePosition: "bottom",
    //每页数量  默认10
    pageSize: 50,
    //每页页数控制 默认[10,20,30,40,50]
    pageList: [50, 100, 200, 500],
    //当前页 默认1
    pageNumber: 1,
    //列配置
    columns: [
    [{ field: 'DHOrderNo', title: "订货单编号", width: 100, halign: "center", align: "left", resizable: false },
        { field: 'TotalQty', title: "订单总数", width: 100, sortable: true, editor: "text" },
        {
            field: 'SupplierName', title: "供应商", width: 100, sortable: true,
            //格式化对象
            formatter: function (value, row, index) {
                if (value) {
                    return value.Name;
                }
            },
            //注意:如果该列数据源是Object需按以下方式排序
            //不一定要用显示的属性,也可以使用其他属性,看情况而定。
            sorter: function (a, b) {
                return a.Name == b.Name ? 0 : a.Name > b.Name ? 1 : -1;
            }
        },
        { field: 'CreateDate', title: "创建日期", width: 100, editor: "datebox" },
        {
            field: 'action', title: '操作', width: 70, align: 'center',
            formatter: function (value, row, index) {
                if (row.editing) {//编辑中
                    var s = '<a href="#" onclick="saverow(this)">保存</a> ';
                    var c = '<a href="#" onclick="cancelrow(this)">取消</a>';
                    return s + c;
                } else {
                    var e = '<a href="#" onclick="editrow(this)">修改</a> ';
                    var d = '<a href="#" onclick="deleterow(this)">删除</a>';
                    return e + d;
                }
            }
        }
    ]]
});

那么页面的效果是:

感觉easyui的界面还是蛮清爽的
这边的nav.json是一个json格式文件内容是
1
2
3
4
5
6
7
8
9
10
11
12
{
    "total":360,
    "rows":[
        { "DHOrderNo":1, "Funding": "资金方1","Number":2,"Unit":50,"TotalQty":100,"SupplierName":{ "Id":1, "Name":"供应商1" },"CreateDate":"2015-05-21","Flag":1 },
        { "DHOrderNo":2, "Funding": "资金方2","Number":5,"Unit":50.01,"TotalQty":250.05,"SupplierName":{ "Id":2, "Name":"供应商2" },"CreateDate":"2015-05-21","Flag":0 },
        { "DHOrderNo":3, "Funding": "资金方3","Number":10,"Unit":60, "TotalQty":600,"SupplierName":{ "Id":3, "Name":"供应商3" },"CreateDate":"2015-05-21","Flag":1 }
    ],
    "footer":[
        { "Funding":"平均","TotalQty": 316.68 },
        { "Funding":"总和","TotalQty": 950.05 }
    ]
}
 
2、表格扩展,下面是扩展的写法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    $.fn.ProductGrid = function(options, param) {
    var me = this;
    //判断options是否是string类型
    if (typeof options == 'string') {
        //根据options从datagrid的配置中查找
        var method = $(this).datagrid('options')[options];
        //如果没找到,从$.fn.ProductGrid的methods中查找
        if (!method)
            method = $.fn.ProductGrid.methods[options];
        //如果存在,调用方法
        if (method)
            return method(this, param);
        else
            alert(options + 'can not support');
    }
    var defaults = {
        url : options.url,
        method : 'get',
        border : false,
        singleSelect : true,
        fit : true,
        fitColumns : true,
        //附加的公共方法
        searchByPage : function(jq, id) {
            alert('this is public function!');
            $(me).datagrid('load', {});
        },
        columns : [ [ 
            {field:'DHOrderNo',title:"ID",width:80},
            {field:'Funding',title:"资金方",width:100},
            { field: 'TotalQty', title: "数量", width: 80 }
        ]]
    };
    options = $.extend(defaults, options);
    $(me).datagrid(options);
};

2、表单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<form id="form" method="get">
    <table>
        <tr>
            <td>姓名:</td>
            <td><input class="easyui-validatebox" type="text" name="name" data-options="required:true"></input></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input class="easyui-validatebox" type="text" name="email" data-options="validType:'email'"></input></td>
        </tr>
        <tr>
            <td>备注:</td>
            <td> <textarea name="message" style="height:60px;"></textarea></td>
        </tr>
        <tr>
            <td>年龄:</td>
            <td><select name="age" class="easyui-combobox" >
                <option value="1">20~30</option>
                <option value="2">30~40</option>
                <option value="3">40以上</option>
            </select></td>
        </tr>
        <tr>
            <td>日期:</td>
            <td><input class="easyui-datebox" name="date" /></td>
        </tr>
        <tr>
            <td>数字:</td>
            <td><input class="easyui-numberbox" name="number" /></td>
        </tr>
    </table>
    <div>
        <a id="load" class="easyui-linkbutton" href="javascript:">加载本地数据</a>
        <a id="load2" class="easyui-linkbutton" href="javascript:">加载ajax数据</a>            
        <a id="submit" class="easyui-linkbutton" href="javascript:">提交</a>
        <a id="clear" class="easyui-linkbutton" href="javascript:">清空</a>
    </div>
</form>

对应的js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$("#submit").on("click",function(){
     $('#form').form("submit",{
         url:"../../json/submit.json",
         onSubmit:function(pParam){
             //附加表单以外的一些验证
             //通过pParam附加一些提交参数
             pParam.index = 1;
             return $('#form').form("validate");
         },
         success:function(data){
             alert(data);
         }               
     });
 });
 $("#clear").on("click",function(){
     $('#form').form("reset");
 });

注意表单中的easyui属性,运行的效果如:

3、树,直接看代码吧,代码有注释

1
2
3
4
5
6
7
8
9
10
     $("#tree").tree({
    url:"json/nav.json",
    method:"get",
    lines:true,
    onClick:function(node){
        if(node.url && node.url.length > 0){
            _this.add(node.text,node.url,node.id,node.icon);
        }
    }
});

数的json文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[
    {
        "id":101,"text":"2、表单",
        "children":[
            { "id":2, "text": "2.1、简单示例", "url":"views/form/form.html" },
            { "id":3, "text": "2.2、常用示例", "url":"views/form/forms.html" }
        ]
    },{
        "id":102,"text":"3、表格",
        "children":[
            { "id":4, "text": "3.1、简单示例", "url":"views/grid/grid.html" },
            { "id":5, "text": "3.2、明细示例", "url":"views/grid/gridDetail.html" },
            { "id":6, "text": "3.2、行编辑示例", "url":"views/grid/edit.html" },
            { "id":6, "text": "3.2、表格编辑示例", "url":"views/grid/edit2.html" }
        ]
    },{
        "id":103,"text":"4、树",
        "children":[
            { "id":4, "text": "4.1、简单示例", "url":"views/tree/tree.html" },
            { "id":5, "text": "4.2、示例", "url":"views/tree/treeGird.html" }
        ]
    }
]

如果把这个文件放在vs中,运行index.html时候回报错,请在web.config中配置,才能识别.json文件

1
2
3
4
5
<system.webServer>
   <staticContent>
     <mimeMap fileExtension=".json" mimeType="application/json" />
   </staticContent>
 </system.webServer>

源码地址:http://pan.baidu.com/s/1gdH8CCj

EasyUI的中午文档 和学习网站

http://www.zi-han.net/case/easyui/index.html

http://www.jeasyui.net/demo/380.html

http://www.cnblogs.com/huaizuo/p/4583597.html

EasyUI实战经验总结(转)的更多相关文章

  1. EasyUI实战经验总结,给有需要的人

    最近公司培训EasyUI,就做下总结吧,给有需要的人. 1.最常用的表格 <div class="easyui-panel" data-options="regio ...

  2. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)

    RAC 特殊问题和实战经验(五) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  3. (转)国内外三个不同领域巨头分享的Redis实战经验及使用场景

    随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...

  4. MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验

    原文地址:http://liangweilinux.blog.51cto.com/8340258/1728131 首先在此感谢下我的老师年一线实战经验,我当然不能和我的老师平起平坐,得到老师三分之一的 ...

  5. MySQL索引实战经验总结

    MySQL索引对数据检索的性能至关重要,盲目的增加索引不仅不能带来性能的提升,反而会消耗更多的额外资源,本篇总结了一些MySQL索引实战经验. 索引是用于快速查找记录的一种数据结构.索引就像是数据库中 ...

  6. 第9期Unity User Group Beijing图文报道:《Unity实战经验分享》

    时间来到了金秋九月,北京UUG活动也来到了第九期.本次活动的主题为<Unity实战经验分享>,为此我们邀请了3位资深的行业大神.这次我们仍然在北京市海淀区丹棱街5号微软大厦举行活动,在这里 ...

  7. ASP.NET Core & Docker 实战经验分享

    一.前言 最近一直在研究和实践ASP.NET Core.Docker.持续集成.在ASP.NET Core 和 Dcoker结合下遇到了一些坑,在此记录和分享,希望对大家有一些帮助. 二.中间镜像 我 ...

  8. Jenkins高级用法 - Jenkinsfile 介绍及实战经验

    系列目录 1.Jenkins 安装 2.Jenkins 集群 3.Jenkins 持续集成 - ASP.NET Core 持续集成(Docker&自由风格&Jenkinsfile) 4 ...

  9. HDFS配置参数及优化之实战经验(Linux hdfs)

    HDFS优化之实战经验 Linux系统优化 一.禁止文件系统记录时间 Linux文件系统会记录文件创建.修改和访问操作的时间信息,这在读写操作频繁的应用中将带来不小的性能损失.在挂载文件系统时设置no ...

随机推荐

  1. Kafka 协议实现中的内存优化

    Kafka 协议实现中的内存优化 Kafka 协议实现中的内存优化   Jusfr 原创,转载请注明来自博客园 Request 与 Response 的响应格式 Request 与 Response ...

  2. poj3984(经典dfs)

    题目链接:http://poj.org/problem?id=3984 分析:直接深搜从起点到终点,如何取最短路线,其实只要优先向下或向右走即可. #include <cstdio> #i ...

  3. python实现了字符串的按位异或和php中的strpad函数

    近期在写自己主动化測试,因为开发加密中用到strpad和字符串的按位异或,而python中没有这种函数和功能,所以必须自己写一套,要不自己主动化測试无法进行,所以就用python实现了一下,因为在写字 ...

  4. 第6本:《The Hunger Games》

    第6本:<The Hunger Games> 以前从未读过一本完整的英文小说,所有就在今年的读书目标中增加了一本英文小说,但在 头四个月内一直没有下定决定读哪一本.一次偶然从SUN的QQ空 ...

  5. emeditor只显示特定类型的文件

    emeditor过滤文件类型,右侧资源管理器中只显示特定类型的文件,如只显示java,xml,txt,properties等文件,而不显示doc,jpg,xls等emeditor不能打开的文件. 右击 ...

  6. Knockout应用开发指南 第三章:绑定语法(1)

    原文:Knockout应用开发指南 第三章:绑定语法(1) 第三章所有代码都需要启用KO的ko.applyBindings(viewModel);功能,才能使代码生效,为了节约篇幅,所有例子均省略了此 ...

  7. 采用Bash脚本性能监控过程

    为一个Linux过程监控,采用Bash脚本. 采用ps命令的过程监控,使用周期加上连续监测的睡眠时间. 使用方法: psmonitor.sh -p [pid] -d [interval] -n [st ...

  8. H264 编解码框架简单介绍

    阅读完H264/AVC 编解码器的介绍,脑海中仅仅是留下下面三条: 1.H264并没有明白规定一个编解码器怎样实现,仅仅是规定了一个编码后的视频比特流的句法,和该比特流的解码方法,这个与MPEG 类似 ...

  9. 扔鸡蛋问题具体解释(Egg Dropping Puzzle)

    经典的动态规划问题,题设是这种: 假设你有2颗鸡蛋,和一栋36层高的楼,如今你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该怎样用最少的測试次数对于不论什么答案楼层都可以使问题得到解决. 假设你从某一层楼 ...

  10. 数据结构:Binary and other trees(数据结构,算法及应用(C++叙事描述语言)文章8章)

    8.1 Trees -->root,children, parent, siblings, leaf; level, degree of element 的基本概念 8.2 Binary Tre ...