zoukankan      html  css  js  c++  java
  • ssh+easyui 之treegrid---列表显示

    第一步:建立bean类,

    bean类

    @Entity
    @Table(name = "MCC")//数据库表名:MCC
    public class MCC {
        private String id;
        private String shlb;// 商户类别
        private String lbjb;// 类别级别 1大类别 2 小类别 3商户类别名
        private String sslb;// 所属类别
        private String sxf;// 手续费
        private String mcc;// mcc值
        private String zt;// 状态
        private String lrr; // 录入人
        private String lrsj; // 录入时间
        private String xgr; // 修改人
        private String xgsj; // 修改时间

        @Id//设置主键
        @Column(length = 15)//设置列
        public String getId() {
            return id;
        }

        @Column(length = 150)
        public String getShlb() {
            return shlb;
        }

        @Column(length = 3)
        public String getLbjb() {
            return lbjb;
        }

        @Column(length = 100)
        public String getSslb() {
            return sslb;
        }

        @Column
        public String getSxf() {
            return sxf;
        }

        @Column(length = 15)
        public String getMcc() {
            return mcc;
        }

        @Column(length = 1)
        public String getZt() {
            return zt;
        }

        @Column(length = 20)
        public String getLrr() {
            return lrr;
        }

        @Column(length = 20)
        public String getLrsj() {
            return lrsj;
        }

        @Column(length = 20)
        public String getXgr() {
            return xgr;
        }

        @Column(length = 20)
        public String getXgsj() {
            return xgsj;
        }

    省略set方法

    2.页面显示的bean

    pagebean

    public class MccTreeGrid {
        private String id;
        private String shlb;
        private String sxf;
        private String mcc;
        private String lbjb;
        private String zt;
        private String lrr;
        private String lrrmc;
        private String lrsj;
        private String xgr;
        private String xgrmc;
        private String xgsj;
        private String sslb;
        private String state = "open";// open,closed异步加载必须添加该项
        private List<MccTreeGrid> children;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getShlb() {
            return shlb;
        }

        public void setShlb(String shlb) {
            this.shlb = shlb;
        }

        public String getSxf() {
            return sxf;
        }

        public void setSxf(String sxf) {
            this.sxf = sxf;
        }

        public String getMcc() {
            return mcc;
        }

        public void setMcc(String mcc) {
            this.mcc = mcc;
        }

        public String getZt() {
            return zt;
        }

        public void setZt(String zt) {
            this.zt = zt;
        }

        public String getLrr() {
            return lrr;
        }

        public void setLrr(String lrr) {
            this.lrr = lrr;
        }

        public String getLrsj() {
            return lrsj;
        }

        public void setLrsj(String lrsj) {
            this.lrsj = lrsj;
        }

        public String getXgr() {
            return xgr;
        }

        public void setXgr(String xgr) {
            this.xgr = xgr;
        }

        public String getXgsj() {
            return xgsj;
        }

        public void setXgsj(String xgsj) {
            this.xgsj = xgsj;
        }

        public List<MccTreeGrid> getChildren() {
            return children;
        }

        public void setChildren(List<MccTreeGrid> children) {
            this.children = children;
        }

        public String getLbjb() {
            return lbjb;
        }

        public void setLbjb(String lbjb) {
            this.lbjb = lbjb;
        }

        public String getSslb() {
            return sslb;
        }

        public void setSslb(String sslb) {
            this.sslb = sslb;
        }

        public String getLrrmc() {
            return lrrmc;
        }

        public void setLrrmc(String lrrmc) {
            this.lrrmc = lrrmc;
        }

        public String getXgrmc() {
            return xgrmc;
        }

        public void setXgrmc(String xgrmc) {
            this.xgrmc = xgrmc;
        }

        public String getState() {
            return state;
        }

        public void setState(String state) {
            this.state = state;
        }

    3.接口实现类(省略接口类及dao层)

    serviceImpl

    /**
         * 获取treegrid列表
         * */
        @Transactional(propagation = Propagation.SUPPORTS)
        public List<MccTreeGrid> treegrid(Mcc mcc) {
            String hql = "from MCC t where  1 = 1 and t.lbjb = 1 ";
            List<Object> values = new ArrayList<Object>();
            hql = addWhere(mcc, hql, values);
            List<MCC> t = dao.find(hql,values);
            List<MccTreeGrid> treegrid = new ArrayList<MccTreeGrid>();
            for(MCC m:t){
                treegrid.add(treegrid(m));
            }
            
            return treegrid;
        }
    /**
         * treegrid
         * */
        private MccTreeGrid treegrid(MCC m){
            MccTreeGrid t = new MccTreeGrid();
            t.setId(m.getId());
            t.setShlb(m.getShlb());
            t.setSxf(m.getSxf());
            t.setMcc(m.getMcc());
            t.setLbjb(m.getLbjb());
            t.setLrr(m.getLrr());
            t.setLrsj(m.getLrsj());
            t.setXgr(m.getXgr());
            t.setXgsj(m.getXgsj());
            t.setZt(m.getZt());
            t.setSslb(m.getSslb());
            t.setLrrmc(udao.get("from Tuser e where e.id = ? ", new Object[]{m.getLrr()}).getUsername());
            if(m.getXgr() != null && !"".equals(m.getXgr())){
                t.setXgrmc(udao.get("from Tuser e where e.id = ? ", new Object[]{m.getLrr()}).getUsername());
            }
            List<MCC> l = dao.find("from MCC t where t.sslb = ? ", new Object[]{m.getId()});
            if(l.size() > 0){
                t.setState("closed");
            }else{
                t.setState("open");
            }
            List<MccTreeGrid> children = new ArrayList<MccTreeGrid>();
            for(MCC c:l){
                MccTreeGrid tg = new MccTreeGrid();
                tg.setId(c.getId());
                tg.setShlb(c.getShlb());
                tg.setSxf(c.getSxf());
                tg.setMcc(c.getMcc());
                tg.setLbjb(c.getLbjb());
                tg.setLrr(c.getLrr());
                tg.setLrsj(c.getLrsj());
                tg.setXgr(c.getXgr());
                tg.setXgsj(c.getXgsj());
                tg.setZt(c.getZt());
                tg.setSslb(c.getSslb());
                children.add(treegrid(c));
            }
            t.setChildren(children);
            return t;
        }

    4.anction的实现方法

    action

    /**
         * 获取treegrid
         * */
        public void treegrid(){
            super.writeJson(ms.treegrid(mcc));
        }

    5.js页面

    treegrid = $('#mcc_manage_treegrid').treegrid({
            url : dylan.bp() + '/mcc!treegrid.action',
            method: 'POST',
            pagination : false,            
            rownumbers:false,
            fit : true,//自适应
            fitColumns : true,
            queryParams:dylan.serializeObject(searchForm),
            nowrap : false,//单元格内容自动换行
            animate : true,
            collapsible: true,
            border : false,//无边框
            idField : 'id',//记录主键,可不写
            treeField:'shlb',
            columns : [ [ {//锁定列
                field : 'id',
                title : '主键',
                width : 100,
                checkbox : true
            }, {
                field : 'shlb',
                title : '商户类别',
                width : 480,
                align : 'left'
            },{
                field : 'sxf',
                title : '手续费',
                width : 80,
                sortable : true,
                align : 'center'
            }, {
                field : 'mcc',
                title : 'mcc值',
                width : 80,
                sortable : true,
                align : 'center'
            }, {
                field : 'zt',
                title : '状态',
                width : 80,
                sortable : true,
                align : 'center',
                formatter : function(v) {
                    if (v == '0') {
                        return '无效';
                    }
                    return '有效';
                }
            }, {
                field : 'lrrmc',
                title : '录入人',
                width : 80,
                align : 'center'
            }, {
                field : 'lrsj',
                title : '录入时间',
                width : 130,
                align : 'center'
            }, {
                field : 'xgrmc',
                title : '修改人',
                width : 80,
                align : 'center'
            }, {
                field : 'xgsj',
                title : '修改时间',
                width : 130,
                align : 'center'
            }
            ] ],
            //treegrid异步查询
            onBeforeLoad:function(row,param){
                if(row){
                    $(this).treegrid('options').url =dylan.bp() + '/mcc!treegrid.action?sslb='+row.id;
                }else{
                    $(this).treegrid('options').url =dylan.bp() + '/mcc!treegrid.action';
                }
                
            },
            
            onExpand : function(row) {
                treegrid.treegrid('unselectAll');
            },
            
            onCollapse : function(row) {
                treegrid.treegrid('unselectAll');
            },
            onContextMenu : function(e,row){
                e.preventDefault();//阻止向上冒泡
                $(this).treegrid('select', row.id);
                $('#menu').menu('show',{
                    left: e.pageX,
                    top: e.pageY
                });
            },
            toolbar:[{
                iconCls:'icon-search',
                text : '查询',
                handler:function(){
                    dylan.mcc_manage.searchForm();
                }
            },'-',{
                iconCls:'icon-add',
                text : '添加',
                handler:function(){
                    dylan.mcc_manage.add();
                }
            },'-',{
                iconCls:'icon-edit',
                text : '修改',
                handler:function(){
                    dylan.mcc_manage.edit();
                }
            },'-',{
                iconCls:'icon-remove',
                text : '更改状态',
                handler:function(){
                    dylan.mcc_manage.remove();
                }
            },'-',{
                iconCls:'icon-add',
                text : '展开',
                handler:function(){
                    dylan.mcc_manage.expand();
                }
            },'-',{
                iconCls:'icon-remove',
                text : '收起',
                handler:function(){
                    dylan.mcc_manage.collapse();
                }
            },'-']
        });


        总结:

    编写过程中存在的问题:

    1.treegrid的异步查询,

      解决步骤 1.在pagebean的类里面添加state属性,默认为close

           2.在impl接口里面判断是否有子节点,并设置state相对应的值

           if(l.size() > 0){//l为获取子节点的列表
                    t.setState("closed");//若l不为空,则设置state为closed
                }else{
                    t.setState("open");
                }

           3.修改js文件,设置onBeforeLoad方法,(不能设置onBeforeExpand,否则在添加和修改子节点时,reload方法会导致页面所有元素加载为空)

            onBeforeLoad:function(row,param){
                    if(row){
                        $(this).treegrid('options').url =dylan.bp() + '/mcc!treegrid.action?sslb='+row.id;
                    }else{
                        $(this).treegrid('options').url =dylan.bp() + '/mcc!treegrid.action';
                    }
                
                },

  • 相关阅读:
    Oracle优化器模式不同导致索引失效
    Python补零操作
    正则表达式
    python习题(二)
    Linux常见报错及解决方法(持续更新)
    总结(三)----2020上
    总结二
    总结---持更
    python多线程实现方式,最基础的实现方式模块是什么
    python2和python3区别
  • 原文地址:https://www.cnblogs.com/flafly/p/5105293.html
Copyright © 2011-2022 走看看