easyui父子table

本人博客全部迁至个人博客,柒情博客http://www.ityw.club ,后续所有博客将在柒情博客上进行更新。

前阵子正好有个这样的需求,需要做一个父子table

酱紫的

开始选择了ligerui,最后效果出来后却有一个bug,刷新两次,内容就加载没了,作为一个刚入门的后端狗,没办法,之后转换阵营,用了easyui,这里记录下来,方便自己以后使用

html

<table id="maingrid" data-options="fit:true"></table>

js

/**
 * 父子table
 */
$(function () {
    var dg = $("#maingrid");
    dg.datagrid({
        url: '<%=basePath%>shopPersonnelManagement/findApplicationRecord.do',
        fit: false,  //  自动大小
        idField: 'order_id',
        fitColumns: true,
        pagination: true, // 是否分页
        /*rownumbers: true,*/ // 显示行数
        singleSelect: true, // 单选
        sortName: 'apply_date',
        sortOrder: 'desc',
        collapsible: false,
        remoteSort : false,
        queryParams: $('#Form').serializeArray(),
        emptyMsg: '未找到数据',
        scrollbarSize: 0,
        pageSize: 10,
        border: false,
        width: '80%',
        onSortColumn : function(sort,order) {
        },
            columns: [[{
            field: 'apply_date',
            title: '申请时间',
            width: "16.5%",
            align: 'center',
            sortable : true,
            formatter: function (value) {
                if (typeof value == "undefined") {
                    return "";
                } else {
                    return "<span title='" + value + "'>" + value + "</span>";
                }
            }
        }, {
            field: 'brand',
            title: '品牌',
            width: "8%",
            align: 'center',
            formatter: function (value) {
                if (typeof value == "undefined" ) {
                    return "";
                } else {
                    return "<span title='" + value + "'>" + value + "</span>";
                }
            }
        }, {
            field: 'applicant',
            title: '申请人',
            width: "8%",
            align: 'center',
            formatter: function (value) {
                if (typeof value == "undefined") {
                    return "";
                } else {
                    return "<span title='" + value + "'>" + value + "</span>";
                }
            }
        }, {
            field: 'plan_change_date',
            title: '计划变更时间',
            width: "17%",
            align: 'center',
                sortable : true,
            formatter: function (value) {
                if (typeof value == "undefined") {
                    return "";
                } else {
                    return "<span title='" + value + "'>" + value + "</span>";
                }
            }
        }, {
            field: 'demand_posts',
            title: '需求岗位',
            width: "18%",
            align: 'center',
            formatter: function (value) {
                if (typeof value == "undefined") {
                    return "";
                } else {
                    return "<span title='" + value + "'>" + value + "</span>";
                }
            }
        }, {
            field: 'apply_num',
            title: '需求人数',
            width: "10%",
            align: 'center',
            formatter: function (value) {
                if (typeof value == "undefined") {
                    return "";
                } else {
                    return "<span title='" + value + "'>" + value + "</span>";
                }
            }
        }, {
            field: 'status',
            title: '审核状态',
            width: "11%",
            align: 'center',
            formatter: function (value) {
                if (typeof value == "undefined") {
                    return "";
                } else {
                    if(value==1){
                        return "<span title='待审核' style='color: #CDA869'>待审核</span>";
                    }
                    if(value==2){
                        return "<span title='已审核' style='color: #00B83F'>已审核</span>";
                    }
                    if(value==3){
                        return "<span title='已否决' style='color: #E4564F'>已否决</span>";
                    }
                }
            }
        },{
            field: 'qx',
            title: '操作',
            width: "10%",
            align: 'center',
            formatter: function (value, row, index) {
                if(value==1&&row.status==1){
                    return "<a href=' javascript:void(0)' data-id='"+row.id+"' class='ctr-delete' onclick='up(this);'>审批</a>";
                }
                if(value==1&&row.status!=1){
                    return "<a href=' javascript:void(0)' data-id='"+row.id+"' class='ctr-delete' onclick='up(this);'>查看</a>";
                }
                if(value==0&&row.status==1){
                    var look="<a href='javascript:void(0)' data-id='"+row.id+"' class='ctr-delete' onclick='up(this);'>编辑</a>";
                    var deletes="<a href='javascript:void(0)' data-id='"+row.id+"' class='ctr-delete' onclick='de(this);'>删除</a>";
                    return look+"  "+deletes;
                }
                if(value==0&&row.status==2){
                    var look="<a href=' javascript:void(0)' data-id='"+row.id+"' class='ctr-delete' onclick='up(this);'>查看</a>";
                    return look;
                }
                if(value==0&&row.status==3){
                    var look="<a href=' javascript:void(0)' data-id='"+row.id+"' class='ctr-delete' onclick='up(this);'>编辑</a>";
                    return look;
                }

            }
        }

        ]],
        toolbar: '#tb',
        view: detailview,
        detailFormatter: function (index, row) {
            return '<div id="ddv-' + index + '" style="padding:2px;position:relative;"><table class="ddv"></table></div>';
        },
        onExpandRow: function (index, row) {
            var o = $('#ddv-' + index);
            var ddv = $(this).datagrid('getRowDetail', index).find('table.ddv');
            ddv.datagrid({
                url: '<%=basePath%>shopPersonnelManagement/findDemandPostDetails.do',
                fitColumns: true,
                singleSelect: true,
                rownumbers: true,
                loadMsg: '加载中...',
                emptyMsg: '未找到数据',
                height: 'auto',
                queryParams: {
                    aid: row.id,
                },
                columns: [[
                    {
                        field: 'apply_date', title: '申请时间', width: 40, align: 'center', formatter: function (value) {
                            if (typeof value == 'undefined') {return "";}
                            else {return "<span title='" + value + "'>" + value + "</span>";}
                        }
                    },
                    {
                        field: 'brand', title: '品牌', width: 30, align: 'center', formatter: function (value) {
                            if (typeof value == 'undefined') {return "";}
                            else {return "<span title='" + value + "'>" + value + "</span>";}
                        }
                    },
                    {
                        field: 'applicant', title: '申请人', width: 30, align: 'center', formatter: function (value) {
                            if (typeof value == 'undefined') {return "";}
                            else {return "<span title='" + value + "'>" + value + "</span>";}
                        }
                    },{
                        field: 'plan_change_date', title: '计划变更时间', width: 30, align: 'center', formatter: function (value) {
                            if (typeof value == 'undefined') {return "";}
                            else {return "<span title='" + value + "'>" + value + "</span>";}
                        }
                    },
                    {
                        field: 'demand_post', title: '岗位需求', width: 20, align: 'center', formatter: function (value) {
                            if (typeof value == 'undefined') {return "";}
                            else {return "<span title='" + value + "'>" + value + "</span>";}
                        }
                    },{
                        field: 'apply_num', title: '需求人数', width: 20, align: 'center', formatter: function (value) {
                            if (typeof value == 'undefined') {return "";}
                            else {return "<span title='" + value + "'>" + value + "</span>";}
                        }
                    }/*,{
                        field: 'id', title: '操作', width: 20, align: 'center', formatter: function (value) {
                            if(row.qx==0&&row.status!=2){
                                console.log(row);
                                var deletes="<a href='javascript:void(0)' data-id='"+value+"' class='ctr-delete' onclick='de2(this);'>删除</a>";
                                return deletes;
                            }
                        }
                    }*/
                ]],
                onResize: function () {
                    dg.datagrid('fixDetailRowHeight', index);
                },
                onLoadSuccess: function () {
                    dg.datagrid('fixDetailRowHeight', index);
                    dg.datagrid('fixRowHeight',index);//防止出现滑动条
                    setTimeout(function () {
                        var tr = o.closest('tr');
                        var id = tr.prev().attr('id'); //此子表格父行所在行的id
                        id = id.replace(/-2-(\d+)$/, '-1-$1'); //detailview没有展开的前部分的id是有规则的
                        $('#' + id).next().css('height', tr.height());
                    }, 0);
                }
            });
            dg.datagrid('fixDetailRowHeight', index);
        }
    });
})

 

 

 

onLoadSuccess,onResize是解决easyui展开子table的+号按钮不自动调整位置的bug

这是个完整的subgrid,也不存在需要点击两次才能完全展开子table的bug

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值