---
title: "Ladda treeview från databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/172112-ladda-treeview-från-databas"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "invecklaren"
published: "2008-06-10T10:44:36.000Z"
updated: "2008-06-13T05:23:25.000Z"
replies: 4
views: 552
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/172112-ladda-treeview-från-databas"
---

# Ladda treeview från databas

## #1 — invecklaren, 2008-06-10T10:44Z

Hej!

Jag har en treeview som jag vill ladda dynamiskt från en databas.
Jag får ett resultatset  i en lista som ser ut som följer:
NodeId
parentNodeID
NodeName

Jag måste göra laddningen programmatiskt. Jag antar att jag behöver en rekursiv funktion eller något?

Någon som har tips?

Permalänk: https://www.webforum.nu/p/172112

## #2 — Travoni, 2008-06-10T18:13Z

<http://weblogs.asp.net/alessandro/archive/2008/03/01/part-2-building-and-binding-hierarchical-data-from-the-database-to-the-asp-net-navigation-controls.aspx>

Om du byter ut menu till en treeview borde du få önskvärt resultat.

Permalänk: https://www.webforum.nu/p/2117584

## #3 — invecklaren, 2008-06-11T19:29Z

Bra idé, men det faller på att den datasetets.GetXML-metod inte returnerar XML med attribut... Hierarkin blir rätt, men nodtexterna blir inte rätt...

Permalänk: https://www.webforum.nu/p/2117765

## #4 — hopparn, 2008-06-12T21:42Z

jag kanske kan ke dig något exempel men inte förrän i morgon då jag sitter på rätt burk

mvh
Hopparn

Permalänk: https://www.webforum.nu/p/2117957

## #5 — hopparn, 2008-06-13T05:23Z

typ såhär gör jag :)

metoden 
renderContent(dt.Rows, node, 0);
där 0 är levelnivå in i metoden, körs i någon form av databindning av trädet.

sen ser den ut ung såhär

```
private void renderContent(DataRowCollection r, TreeNode pn, int level)
		{
			int parentId = Convert.ToInt32(pn.Value);
			foreach (DataRow dr in r)
			{
				if (Convert.ToInt32(dr["parent"]) == parentId && Convert.ToInt32(dr["lvl"]) == level)
				{
					string nodeIcon;
					switch (level)
					{
						case 0:
						default:
							nodeIcon = _chapterImageURL;
							break;
						case 1:
							nodeIcon = _sectionImageURL;
							break;
						case 2:
							nodeIcon = _documentImageURL;
							break;
						case 3:
							nodeIcon = _figureImageURL;
							break;

					}
					TreeNode n = new TreeNode(dr["Name"].ToString(), dr["Id"].ToString(), nodeIcon);
					renderContent(r, n, level + 1);
					pn.ChildNodes.Add(n);
				}
			}
		}
```

 

alltså rekursivt :)

lycka till

Permalänk: https://www.webforum.nu/p/2117976

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/172112-ladda-treeview-från-databas
