如何递归填充ASP.NET Treeview?

时间:2011-03-24 04:48:52

标签: c# asp.net recursion treeview

我有一个ASP.NET树视图控件,需要从一系列对象中递归填充。至少,我需要分层显示每个源节点和父节点的类别名称和描述。为此,我在我的代码隐藏页面中写了以下内容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CATALooK.Automation;

namespace VBayUnMatched  
{
public partial class VBayCats : System.Web.UI.UserControl
{
    private int id;
    private CATALooK.Automation.SourceInfo source;
    private CATALooK.Automation.CategoryInfo parent;
    private string catID;
    private string catName;
    private string desc;
    private string rawData;
    private int advCatID;
    private DateTime lastUpdated;
    protected void Page_Load(object sender, EventArgs e)
    {
        CategoryController cc = new CategoryController();
        CategoryInfo ci = new CategoryInfo
        (id,source,parent,catID,catName,desc,rawData,advCatID,lastUpdated);
        //CATALooK.AdvCatInfoRemote[] acir = cc.getAdvancedCategories();
        TreeView trvUnMatchedCats = new TreeView();
        TreeNodeCollection tnColl = new TreeNodeCollection();
        TreeNode nodeSource = new TreeNode { Value = ToString(source) };
        TreeNode nodeParent = new TreeNode { Value = ToString(parent) };
        TreeNode nodeName = new TreeNode { Value = catName };
    }

    private void PopulateTreeview()
    {


    }

    private string ToString(SourceInfo source)
    {
        throw new NotImplementedException();
    }

    private string ToString(CategoryInfo parent)
    {
        throw new NotImplementedException();
    }

}

}

如何使用递归将父节点分配给nodeParent,将源节点分配给nodeSource,将catName分配给nodeName?

非常感谢您的帮助和指导。

1 个答案:

答案 0 :(得分:1)

最简单(也是最可读)的方法是创建一个实现IHierarchyData接口的类。这暴露了分层数据结构的节点,包括节点对象和描述节点特征的一些属性。实现IHierarchyData接口的对象可以包含在IHierarchicalEnumerable集合中,并由ASP.NET站点导航(如站点地图)和数据源控件使用。

found here 以及 here you see 的一个很好的示例如何以递归方式创建IHierarchyData