2011-03-24 70 views
0

我有一个ASP.NET treeview控件,需要从一系列对象中递归地填充。至少,我需要分层显示每个源和父节点的类别名称和描述。为此,我写了一首歌我隐藏页面如下:如何递归填充ASP.NET TreeView?

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到节点名称?

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

回答

1

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

的一个伟大的样本是found herehere you see如何在递归的方式

+0

真棒创建IHierarchyData。非常感谢!! – SidC 2011-03-24 22:51:04