easyui 之treegrid分页的实现

本文介绍如何在 EasyUI 的 TreeGrid 组件中实现分页功能,包括配置 TreeGrid 设置、解析后台返回的 JSON 数据格式及点击节点时的数据处理等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

easyui 中针对treegrid 实现分页的需求还是比较少的,但是也有这样的需求,因此整理一下,仅供参考。


1,treegrid 的设置:

depTreeGrid=$("#dep_tree_grid").treegrid({
            nowrap: true,
            fit : true,
            border : false,
            method:'GET',
            rownumbers: true,//显示行号
            collapsible:true,//定义面板是否可以折叠
            loadMsg:"正在加载信息请稍候...",
            animate:true,
            url:ctxPath+"/sys/deps",            
            idField:'id',                //数据表格要有主键    
            treeField:'depName',            //treegrid 树形结构主键 text
            fitColumns:true ,//表格自动适应
            striped:true,//隔行变色,
            pagination:true,//底部显示工具栏组件
            pageSize:1,
            pageList:[1,20,30,40,50],//每页显示数
            sortName:'depSort',
            sortOrder:'asc',
            columns:[[
                {field:'depName',title:'部门名称',width:200} ,
                {field:'remark',title:'部门描述路径',width:120} ,
                {field:'depSort',title:'部门排序',width:120,sortable:true} ,
                {field:'createTime',title:'创建时间',width:120} ,
            ]],
            onLoadSuccess:function(data){
                delete $(this).treegrid('options').queryParams['id'];  
            },
            onContextMenu: function(e,row){
                e.preventDefault();                    //屏蔽浏览器的菜单
                $(this).treegrid('unselectAll');    //清除所有选中项
                $(this).treegrid('select', row.id);    //选中状态 
                $('#dep').menu('show', {
                    left: e.pageX,
                    top: e.pageY
                });
            },
            toolbar: "#dep_tb",
        });
    });


2,查看后台返回的json数据格式:


{"total":28,"rows":[
{"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
{"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"},
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"},
{"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"},
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"},
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"},
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"},
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"},
{"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
]}


3,点击节点返回的数据


[
{"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
{"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"},
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"},
{"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"},
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"},
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"},
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"},
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"},
{"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
]

4,针对点击节点触发 的问题:

在点击 treegrid 会传一个id,所以在后端处理的时候,根据id来做处理


@GetMapping
    @ResponseBody
    public Object list(int page,int rows,String sort,String order,
            @RequestParam Map<String,Object>  params,@RequestParam(defaultValue="0") String id ){
        if("0".equals(id)){
            PageInfo pageInfo = new PageInfo(page,rows, sort, order);
            params.put("id", id);
            pageInfo.setCondition(params);
            return sysDepartmentService.selectList(pageInfo);
        }else{
            return sysDepartmentService.selectList(id);
        }
    }

但是点完treegrid之后,再翻页,easyui会将id再传过去,所以我们需要在

onLoadSuccess:function(data){
                delete $(this).treegrid('options').queryParams['id'];  
},





















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值