首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET Ligertree 綁定資料庫遞迴資料:部門樹狀結構實作

     編輯:程式設計綜合問答

資料結構

Table: Department
- DeptID (PK)
- DeptName
- ParentDeptID (FK, NULL 為根節點)

後端遞迴建構 JSON(Ligertree 格式)

public List GetDeptTree() {
    var all = db.Departments.ToList(); // 一次讀取所有
    var roots = all.Where(d => d.ParentDeptID == null).ToList();
    return BuildTree(roots, all);
}

List BuildTree(List parents, List all) {
    var nodes = new List();
    foreach (var p in parents) {
        var node = new TreeNode { id = p.DeptID, text = p.DeptName };
        var children = all.Where(d => d.ParentDeptID == p.DeptID).ToList();
        if (children.Any()) node.children = BuildTree(children, all);
        nodes.Add(node);
    }
    return nodes;
}

// TreeNode 類別需符合 Ligertree 要求:id, text, children (List)

前端初始化

$("#tree").ligerTree({
    data: <%= JsonSerializer.Serialize(Model.TreeData) %>, // 或 AJAX 取得
    checkbox: false,
    slide: true
});

效能提示

  • 資料量 < 5000 筆,一次性載入遞迴構建最簡單。
  • 大量資料採用 **延遲載入**:onExpand 事件 AJAX 取得子節點。
  • 確保 ParentDeptID 有索引,遞迴查詢才快。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved