Click here to Skip to main content
15,887,596 members
Home / Discussions / C#
   

C#

 
GeneralRe: TreeView Recursion Pin
Muammar©1-Aug-09 12:50
Muammar©1-Aug-09 12:50 
GeneralRe: TreeView Recursion Pin
OriginalGriff1-Aug-09 21:59
mveOriginalGriff1-Aug-09 21:59 
GeneralRe: TreeView Recursion Pin
Muammar©1-Aug-09 23:18
Muammar©1-Aug-09 23:18 
GeneralRe: TreeView Recursion Pin
OriginalGriff2-Aug-09 0:34
mveOriginalGriff2-Aug-09 0:34 
GeneralRe: TreeView Recursion Pin
Muammar©2-Aug-09 1:01
Muammar©2-Aug-09 1:01 
AnswerRe: TreeView Recursion Pin
N a v a n e e t h9-Aug-09 4:47
N a v a n e e t h9-Aug-09 4:47 
GeneralRe: TreeView Recursion Pin
Muammar©9-Aug-09 9:53
Muammar©9-Aug-09 9:53 
GeneralRe: TreeView Recursion Pin
N a v a n e e t h9-Aug-09 16:31
N a v a n e e t h9-Aug-09 16:31 
Here you go
bool firstIteration = true;
Node baseLine = null;
foreach (DataRow row in dt.Rows)
{
    if (firstIteration)
    {
        baseLine = new Node(int.Parse(row["Id"].ToString()),
            row["Name"].ToString());
        firstIteration = false;
    }
    else
    {
        int parentId = int.Parse(row["Parent"].ToString());
        Node parent = (baseLine.Id == parentId) ? baseLine :  baseLine.FindNode(parentId);
        parent.AddChild(new Node(int.Parse(row["Id"].ToString()),
                row["Name"].ToString()));
    }
}
baseLine.PrintTree(node => Console.WriteLine(node));
Console.ReadKey();
I'd suggest to avoid using DataTable in production code. You could achieve the above with a simple DataReader. DataTable uses reader internally. You may also need to add some sanity check to this code like NULL checking, data validation etc.

Smile | :)


GeneralRe: TreeView Recursion Pin
Muammar©10-Aug-09 2:19
Muammar©10-Aug-09 2:19 
GeneralRe: TreeView Recursion Pin
N a v a n e e t h10-Aug-09 7:40
N a v a n e e t h10-Aug-09 7:40 
GeneralRe: TreeView Recursion Pin
Muammar©10-Aug-09 7:49
Muammar©10-Aug-09 7:49 
GeneralRe: TreeView Recursion Pin
Muammar©10-Aug-09 8:04
Muammar©10-Aug-09 8:04 
GeneralRe: TreeView Recursion Pin
Muammar©10-Aug-09 8:14
Muammar©10-Aug-09 8:14 
GeneralSolved:) Pin
Muammar©10-Aug-09 8:21
Muammar©10-Aug-09 8:21 
GeneralA minor bug?? I hope :s [modified] Pin
Muammar©10-Aug-09 8:35
Muammar©10-Aug-09 8:35 
GeneralRe: A minor bug?? I hope :s Pin
N a v a n e e t h10-Aug-09 9:29
N a v a n e e t h10-Aug-09 9:29 
GeneralRe: A minor bug?? I hope :s Pin
Muammar©10-Aug-09 10:21
Muammar©10-Aug-09 10:21 
GeneralRe: TreeView Recursion [modified] Pin
Muammar©10-Aug-09 7:45
Muammar©10-Aug-09 7:45 
General[Message Deleted] Pin
Muammar©11-Aug-09 3:13
Muammar©11-Aug-09 3:13 
GeneralRe: TreeView Recursion Pin
N a v a n e e t h11-Aug-09 4:23
N a v a n e e t h11-Aug-09 4:23 
GeneralRe: TreeView Recursion Pin
Muammar©12-Aug-09 3:36
Muammar©12-Aug-09 3:36 
GeneralRe: TreeView Recursion Pin
N a v a n e e t h12-Aug-09 7:17
N a v a n e e t h12-Aug-09 7:17 
GeneralRe: TreeView Recursion Pin
Muammar©12-Aug-09 7:37
Muammar©12-Aug-09 7:37 
GeneralRe: TreeView Recursion Pin
Muammar©12-Aug-09 10:41
Muammar©12-Aug-09 10:41 
AnswerSolved! Pin
Muammar©13-Aug-09 7:10
Muammar©13-Aug-09 7:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.