DataSet构造多级树型结构

最后更新:2025-07-08 10:02:28 | 状态:未完成

表结构类似这样

ID BASE_ID NAME
1 NULL 中国
2 1 山东
3 2 济南
4 2 青岛
5 2 烟台
6 3 历下区
7 3 天桥区
8 4 市南区
9 4 城阳区

//先取出完整列表

DataSet set = service.querys("SYS_AREA"); 

//ID:主键  BASE_ID:表示上一级ID的列名

set.dispatchs(true,true, "ID:BASE_ID"); 

set.dispatchs("children",true,true, "ID:BASE_ID");

//执行完成后会把每个DataRow中存入当前DataRow的下一级

//这里会生成多个树型结构,一般需要根据ID取出最顶级的DataRow  set.getRow("ID",1);或者取BASE_ID是空的,如果顶级有多个就取多个比如根据级别set.getRows("LVL","1")

方法有多个重载,参考请参考源码说明

    /**
     * 从items中按相应的key提取数据 存入
     * dispatch("children",items, "DEPT_CD")
     * dispatchs("children",items, "CD:BASE_CD")
     *
     * @param compare   匹配方式 默认=
     * @param field     默认"items"
     * @param unique    是否只分配一次(同一个条目不能分配到多个组中)
     * @param recursion 是否递归 所有子级以相同条件执行dispatchs
     * @param items     items默认this
     * @param keys     ID:DEPT_ID或ID
     * @return DataSet
     */

首页 最近更新 搜索 提交 回复