【问题标题】:Treeview population dynamicallyTreeview 动态填充
【发布时间】:2012-04-24 15:23:43
【问题描述】:

我需要在asp.net 中填充treeview,并且我需要一个递归函数来在树视图上插入所有节点和子节点。

我有两种方法:

GetRootPage()

GetPagesByParent(Page parent) -> 返回带有子页面的IEnumerable<Page>

谁能帮我用递归逻辑来构建树?

【问题讨论】:

标签: c# asp.net treeview logic


【解决方案1】:

我真诚地希望这不是一个家庭作业问题。话虽如此,这样的事情应该让你开始:

免责声明: 我没有测试或验证这一点,它只是作为一个粗略的例子

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        var pages = GetPagesByParent(Page);
        if (pages.Count() > 0)
        {
            var roots = pages.Where(p => p.Parent == null);
            foreach (var root in roots)
            {
                //add the root nodes to the tree
                var rootNode = new TreeNode(root.Title);
                tree.Nodes.Add(rootNode);

                //kick off the recursive population
                PopulateChildNodes(pages, root, rootNode);
            }
        }
    }
}

protected void PopulateChildNodes(IEnumerable<Page> pages, Page parent, TreeNode parentNode)
{
    var childPages = pages.Where(p => p.Parent == parent);
    foreach (var page in pages)
    {
        var pageNode = new TreeNode(page.Title);
        parentNode.Nodes.Add(pageNode);

        //populate the children of the pageNode
        PopulateChildNodes(pages, page, pageNode);
    }
}

【讨论】:

    猜你喜欢
    • 2019-06-01
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多