TimZhang 发表于 2019-4-26 16:27:42

递归函数:查询任意父节点下面的全部子节点

最近有客户提问,如何根据父节点查询出与其对应的全部子节点。
数据表的结果大致如下:

我们可以看出,每一条记录(ID)都对应着一个上级记录(ParentID),这是现状。
而需求则是:我在页面中选中任意一个(ParentID),都能自动查询出与之对应的(ID),并且查询层级没有限制,直到再也找不出为止。
下面帖几张图,给大家看一下最终效果:



最后,照例将项目源码奉上。

amtath 发表于 2021-6-10 20:56:43

学习下:lol

amtath 发表于 2021-6-10 20:58:45

// JavaScript source code
var table = Forguncy.Page.getListView("表格1");
var rowCount = table.getRowCount();
var initialData = new Array();
for (var i = 0; i < rowCount; i++)
{
    initialData.push({
      id: parseInt(table.getText(i, 0)),
      pid: parseInt(table.getText(i, 2))
    });
}
var children = new Array();
var getChildren = function(id)
{
    for(var i = 0; i < initialData.length; i++)
    {
      var currentID = initialData.id;
      var currentPID = initialData.pid;
      if (currentPID == parseInt(id))
      {
            children.push(currentID);
            getChildren(currentID);
      }
    }
}
var index = table.getSelectedRowIndex();
var id = table.getText(index, 0);
getChildren(id);
var cp = Forguncy.Page.getCell("childrenPanel");
cp.setValue(children.toString());

Joe.xu 发表于 2021-6-11 08:48:07

amtath 发表于 2021-6-10 20:58


感谢您对活字格的支持。
后面有问题,欢迎继续发新帖交流:loveliness:

幻境之光 发表于 2024-8-30 11:32:17

牛逼的很啊,点击任意一节点获得所有父节点的操作怎么实现啊,大神。
页: [1]
查看完整版本: 递归函数:查询任意父节点下面的全部子节点