Easy DataGrid 实现动态列、行

前端代码:

<title>展示销售的实时数据</title>
<script type="text/javascript">
    var datagrid;
    var editRow = undefined;
    $(function() {
        datagrid = $('#dg').datagrid({
             fit:true,
            fitColumns : true,
            nowrapL : true,
            singleSelect:true,
            rownumbers : true,
            striped: true,
            fitColumns: false,
            pagination : true,
            pageSize : 20,
            pageList : [ 1, 5, 10,15,20,25,50,100],
                    frozenColumns:[[  { field : 'id', title : '编号', width : 100, hidden:'true' }, { field : 'save', title : '保存' }, { field : 'saleName', title : '销售' }, {field : 'wechat',title : '微信'}, ]],
                    columns : [ [ ] ]
        });
        newData();
    });
    function newData() {
        $.post('/manager/allot/listSaleSiteAccount', {
        }, function(data) {
            datagrid.datagrid({
                columns : [ data.columns ]
            }).datagrid("loadData", data);
        }, 'json');
    }
</script>
</head>
<body>
    <table id="dg"></table>
</body>
</html>

数据格式:

{
    "total": 4,
    "rows": [
        {
            "saleName": "不认识",
            "saleId": "110",
            "wechat": "56560"
        },
        {
            "saleName": "不认识",
            "saleId": "16",
            "wechat": "5656559",
            "193": "2"
        },
        {
            "saleName": "不认识",
            "saleId": "10",
            "218": "2221",
            "wechat": "565659"
        },
        {
            "saleName": "不认识",
            "saleId": "8",
            "wechat": "5656569"
        },
        {
            "saleName": "不认识",
            "saleId": "20",
            "wechat": "565659"
        },
        {
            "saleName": "不认识",
            "saleId": "14",
            "wechat": "56566"
        },
        {
            "saleName": "不认识",
            "225": "111313",
            "saleId": "15",
            "wechat": "5656586"
        },
        {
            "saleName": "不认识",
            "saleId": "22",
            "wechat": "5656511274"
        },
        {
            "saleName": "不认识",
            "saleId": "7",
            "wechat": "4545121"
        },
        {
            "saleName": "不认识",
            "saleId": "19",
            "wechat": "565652"
        },
        {
            "saleName": "不认识",
            "saleId": "11",
            "wechat": "565658"
        },
        {
            "saleName": "不认识",
            "225": "121",
            "saleId": "71",
            "wechat": "565652"
        },
        {
            "saleName": "不认识",
            "saleId": "70",
            "wechat": "4545454545"
        },
        {
            "saleName": "不认识 ",
            "saleId": "1",
            "wechat": "56554545"
        },
        {
            "saleName": "不认识",
            "saleId": "21",
            "wechat": "56565454545"
        },
        {
            "saleName": "不认识",
            "saleId": "18",
            "wechat": "565654545"
        },
        {
            "saleName": "不认识",
            "saleId": "69",
            "wechat": "4545453"
        },
        {
            "saleName": "不认识",
            "saleId": "17",
            "wechat": "545454545"
        },
        {
            "saleName": "不认识",
            "saleId": "12",
            "wechat": "45451212"
        },
        {
            "saleName": "不认识",
            "saleId": "9",
            "wechat": "1231212"
        },
        {
            "saleName": "不认识",
            "saleId": "13",
            "wechat": "12121212"
        },
        {
            "saleName": "不认识",
            "saleId": "68",
            "wechat": "12121229"
        }
    ],
    "columns": [
        {
            "field": "241",
            "title": "标题2",
            "align": "right",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "239",
            "title": "标题社1",
            "align": "left",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "240",
            "title": "标题2",
            "align": "right",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "200",
            "title": "标题)",
            "align": "left",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "203",
            "title": "标题)",
            "align": "right",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "223",
            "title": "标题推1",
            "align": "left",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "243",
            "title": "标题2",
            "align": "right",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "139",
            "title": "标题装)",
            "align": "left",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "197",
            "title": "标题)",
            "align": "right",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "202",
            "title": "标题)",
            "align": "left",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "23",
            "title": "标题1",
            "align": "right",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "143",
            "title": "标题2",
            "align": "left",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "247",
            "title": "标题",
            "align": "right",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "246",
            "title": "标题",
            "align": "left",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "245",
            "title": "标题",
            "align": "right",
            "width": null,
            "editor": "text",
            "hidden": false,
            "styler": null
        },
        {
            "field": "sum",
            "title": "个hskjjfkjk",
            "align": "center",
            "width": null,
            "editor": null,
            "hidden": false,
            "styler": null
        },
        {
            "field": "action",
            "title": "操作",
            "align": "center",
            "width": "1800",
            "editor": null,
            "hidden": false,
            "styler": null
        }
    ],
    "frozenColumns": [
        {
            "field": "saleName",
            "title": "销售姓名",
            "width": null,
            "align": "center"
        },
        {
            "field": "wechat",
            "title": "微信",
            "width": null,
            "align": "center"
        }
    ]
}

数据格式java代码:

            /**
             * 动态生成列属性
             */
            List<Site> accountColumn = this.saleSiteService.getAccountColumn();

            List<Columns> columnsList = new ArrayList<Columns>();
            List<FrozenColumns> frozenColumnsList = new ArrayList<FrozenColumns>();

            FrozenColumns frozenColumns = new FrozenColumns();
            frozenColumns.setField("saleName");
            frozenColumns.setTitle("销售姓名");
            frozenColumns.setAlign("center");
            frozenColumnsList.add(frozenColumns);

            FrozenColumns wechatFrozenColumns = new FrozenColumns();
            wechatFrozenColumns.setField("wechat");
            wechatFrozenColumns.setTitle("微信");
            wechatFrozenColumns.setAlign("center");
            frozenColumnsList.add(wechatFrozenColumns);

            for (int i = 0; i < accountColumn.size(); i++) {
                Columns columns = new Columns();
                columns.setField(accountColumn.get(i).getId().toString());
                columns.setTitle(accountColumn.get(i).getSiteName());
                columns.setEditor("text");
                if (i % 2 == 1) {
                    // 列换色
                    columns.setAlign("left");
                    // columns.setStyler("function (value, row, index) { return 'background-color:green;color:white';}");
                } else {
                    columns.setAlign("right");

                }

                columnsList.add(columns);
            }

            Columns sumColumns = new Columns();
            sumColumns.setField("sum");
            sumColumns.setTitle("sfffh和");
            sumColumns.setAlign("center");
            columnsList.add(sumColumns);

            Columns actionColumns = new Columns();
            actionColumns.setField("action");
            actionColumns.setTitle("操作");
            actionColumns.setWidth("1800");
            actionColumns.setAlign("center");
            columnsList.add(actionColumns);

            EasyUIResultDynamic easyUIResultDynamic = new EasyUIResultDynamic(pageInfo.getTotal(),
                    columnResource, columnsList, frozenColumnsList);
            return easyUIResultDynamic;

返回的javaBean:

package cn.rootadmin.bean;

import java.util.List;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * 用于生成EasyUI动态列
 * @author yiliang9117
 * @version  2017年7月6日  下午5:13:59
 */
public class EasyUIResultDynamic {

    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();

    private Integer total;

    private List<?> rows;

    private List<?> columns;
    private List<?> frozenColumns;

    public EasyUIResultDynamic() {
    }

    public EasyUIResultDynamic(Integer total, List<?> rows) {
        this.total = total;
        this.rows = rows;
    }

    public EasyUIResultDynamic(Long total, List<?> rows) {
        this.total = total.intValue();
        this.rows = rows;
    }

    public EasyUIResultDynamic(Long total, List<?> rows, List<?> columns,List<?> frozenColumns) {
        this.total = total.intValue();
        this.rows = rows;
        this.columns = columns;
        this.frozenColumns = frozenColumns;
    }

    public Integer getTotal() {
        return total;
    }

    public void setTotal(Integer total) {
        this.total = total;
    }

    public List<?> getRows() {
        return rows;
    }

    public void setRows(List<?> rows) {
        this.rows = rows;
    }

    public List<?> getColumns() {
        return columns;
    }

    public void setColumns(List<?> columns) {
        this.columns = columns;
    }

    public List<?> getFrozenColumns() {
        return frozenColumns;
    }

    public void setFrozenColumns(List<?> frozenColumns) {
        this.frozenColumns = frozenColumns;
    }

    /**
     * Object是集合转化
     *
     * @param jsonData json数据
     * @param clazz 集合中的类型
     * @return
     */
    public static EasyUIResultDynamic formatToList(String jsonData, Class<?> clazz) {
        try {
            JsonNode jsonNode = MAPPER.readTree(jsonData);
            JsonNode data = jsonNode.get("rows");
            List<?> list = null;
            if (data.isArray() && data.size() > 0) {
                list = MAPPER.readValue(data.traverse(),
                        MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));
            }
            return new EasyUIResultDynamic(jsonNode.get("total").intValue(), list);
        } catch (Exception e) {
            return null;
        }
    }

    @Override
    public String toString() {
        return "EasyUIResultDynamic [total=" + total + ", rows=" + rows + ", columns=" + columns + "]";
    }

}

Easy DataGrid 实现动态列、行的更多相关文章

  1. easyui+ashx 动态初始化datagrid(动态列头)

    效果图: 1:简单初始化 JSON格式数据如下(后台自己构建,后台代码略): {"total":6,"columns":[{"field": ...

  2. Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色

    上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...

  3. 动态PIVOT行转列

    id name subject score remark1 l math 86 2 l eng 68 3 l phy 88 4 z chn 99 5 z math 92 6 z com 98 7 z ...

  4. DataGrid 滚动特定的行或者列

    DataGrid 滚动特定的行或者列. DataGrid.ScrollIntoView Method (Object, DataGridColumn) .NET Framework 4.5 Silve ...

  5. 在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列)

    原文:在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

  6. 在论坛中出现的比较难的sql问题:6(动态行转列 考试科目、排名动态列问题)

    原文:在论坛中出现的比较难的sql问题:6(动态行转列 考试科目.排名动态列问题) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 下面的几个问题,都是动态行转列的问题. ...

  7. WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件)对象绑定

    原文:WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件)对象绑定 WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件) 上面的 ...

  8. WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件)

    原文:WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件) 因为项目需要 要实现这个~ 怎么实现画红框内容部分 田字格和上面Textbox 属于一个自定义控件  大 ...

  9. extjs动态树 动态grid 动态列

    由于项目需要做一个动态的extjs树.列等等,简而言之,就是一个都是动态的加载功能, 自己琢磨了半天,查各种资料,弄了将近两个星期,终于做出来了 首先,想看表结构,我的这个功能需要主从两张表来支持 代 ...

随机推荐

  1. Bash提示符

    Bash有四种提示符 1.基本提示符(PS1):即$符号,是默认的基本提示符,当Shell运行在交互模式下时,该提示符会出现在屏幕上,可以设置为其它符号. 显示PS1设置[cb@cb:16:36:23 ...

  2. C++汉诺塔递归实现

    程序背景: 汉诺塔(Tower of Hanoi)又称河内塔,问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命 ...

  3. html <input type="text" />加上readonly后在各种浏览器的差异。

    <html> <body> <p>Name:<input type="text" name="email" /> ...

  4. JMS 之 Active MQ 启动嵌入式Broke

    一.如何启动active MQ 服务 (一).使用命令启动 /bin 目录下 ./activemq start 默认使用conf/activemq.xml 配置文件 b.[root@localhost ...

  5. 批量自动更新SVN版本库 - Windows

    开发过程中每天都要从SVN代码库里一个一个的update各个项目代码,不仅效率实在是低,也不符合程序员的"懒"精神,由于是在Windows环境做开发,自然就想到了使用bat来实现自 ...

  6. RDLC报表纵向合并单元格。

    在做RDLC报表时发现居然没有纵向合并单元格,震惊! 网上查了一些资料,有些方法很可爱,采用去除边框法,但是用这种方法如果要求文本属性居中的话那则达不到美观效果,还有些复杂一点的方法,我都没耐心看,然 ...

  7. 【Android Developers Training】 32. 向其它应用发送简单数据

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  8. AngularJS-repeat指令

    <body ng-app="myApp"> <div ng-controller="myCtrl"> <ul> <li ...

  9. jq与原生js实现收起展开效果

    jq与原生js实现收起展开效果 (jq需自己加载) <!DOCTYPE html> <html> <head> <meta charset="UTF ...

  10. 邪恶改装2:用单片机实现一次简单的wifi密码欺骗

    0×00 前言 前段时间用TPYBoard v202 做了一个简单的WIFI干扰攻击器(ps :没有看过的小伙伴,可以看一下:http://www.freebuf.com/column/136985. ...