0
我需要在asp.net
中填充treeview
,我需要一個遞歸函數來在樹視圖中插入所有節點和子節點。Treeview人口動態
我有兩種方法:
GetRootPage()
GetPagesByParent(Page parent)
- >返回與頁面孩子的一個IEnumerable<Page>
。
任何人都可以幫助我用遞歸邏輯來構建樹?
我需要在asp.net
中填充treeview
,我需要一個遞歸函數來在樹視圖中插入所有節點和子節點。Treeview人口動態
我有兩種方法:
GetRootPage()
GetPagesByParent(Page parent)
- >返回與頁面孩子的一個IEnumerable<Page>
。
任何人都可以幫助我用遞歸邏輯來構建樹?
我真誠希望這不是一個家庭作業問題。如此說來,這樣的事情應該讓你開始:
免責聲明: 我沒有測試或驗證這一點,它只是用來作爲一個粗略的例子
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);
}
}
它是功課嗎? – ykatchou 2012-04-24 15:27:29
你嘗試過什麼嗎? – 2012-04-24 15:28:42
你可能可以從這裏得到一個開始** http://stackoverflow.com/questions/361661/populate-treeview-from-database** – 2012-04-24 15:35:59