Announcement

Collapse
No announcement yet.

TreeView füllen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TreeView füllen

    Hallo zusammen,

    ich habe wieder ein Problem... ;-)

    Ich möchte einen TreeView aus Inhalten einer Tabelle füllen.
    Wenn ich das ganze mit zwei Tabellen mache (parentTable, childTable), dann geht das auch, aber nun möchte ich die parentID und die childID aus der selben Tabelle auslesen.
    Ich weiß nicht wo genau das Problem liegt, oder ob ich mir eine Endlosschleife gebaut habe. Jedenfalls wird nichts angezeigt, bzw. der PageLoad dauert so lange, dass ich jedes mal abbreche.
    Hier mal mein Code, vielleicht kann mir jemand helfen oder weiß nen Rat!

    Danke im Voraus!

    Code:
    protected void fillTree()
        {
            conn = new MySqlConnection("Database=xxx;Data Source=xxx;User Id=xxx;Password=xxx;");
            conn.Open();
            MySqlCommand cmd = new MySqlCommand("SELECT p_ident, ben1 FROM pwpartstruct, pwdata WHERE pwpartstruct.p_ident = pwdata.ident", conn);
            reader = cmd.ExecuteReader();
            cmd.Dispose();
    
            string[,] ParentNode = new string[4500, 2];
    
            int count = 0;
    
            while (reader.Read())
            {
                ParentNode[count, 0] = reader.GetValue(reader.GetOrdinal("p_ident")).ToString();
                ParentNode[count++, 1] = reader.GetValue(reader.GetOrdinal("ben1")).ToString();
            }
    
            reader.Close();
            for (int loop = 0; loop < count; loop++)
            {
                TreeNode root = new TreeNode();
                root.Text = ParentNode[loop, 1];
                root.Target = "_blank";
    
                root.NavigateUrl = "TreeViewTest.aspx";
    
                MySqlCommand cmdChild = new MySqlCommand("SELECT * from pwpartstruct WHERE c_ident =" + ParentNode[loop, 0], conn);
    
                MySqlDataReader readerChild = cmdChild.ExecuteReader();
    
                while (readerChild.Read())
                {
                    TreeNode child = new TreeNode();
                    child.Text = readerChild.GetValue(readerChild.GetOrdinal("c_type")).ToString();
                    child.Target = "_blank";
                    child.NavigateUrl = "Default.aspx";
    
                    root.ChildNodes.Add(child);
                }
                readerChild.Close();
                TreeView1.Nodes.Add(root);
            }
            TreeView1.CollapseAll();
            conn.Close();
        }

  • #2
    Hallo,

    es funktioniert!
    Allerdings nur so, dass eine Ebene verzweigt wird.

    Kann mir vielleicht jemand helfen, damit ich weitere Ebenen anzeigen kann?!

    Danke!


    Code:
    protected void fillTree()
        {
            conn = new MySqlConnection("Database=xxx;Data Source=xxx;User Id=xxx;Password=xxx;");
            conn.Open();
            MySqlCommand cmd = new MySqlCommand("SELECT DISTINCT p_ident FROM pwpartstruct WHERE pwpartstruct.p_ident LIKE '%" + txtArtikelID.Text + "%';", conn);
            reader = cmd.ExecuteReader();
            cmd.Dispose();
    
            string[,] ParentNode = new string[4500, 2];
    
            int count = 0;
    
            while (reader.Read())
            {
                ParentNode[count, 0] = reader.GetValue(reader.GetOrdinal("p_ident")).ToString();
                ParentNode[count++, 1] = reader.GetValue(reader.GetOrdinal("p_ident")).ToString();
            }
    
            reader.Close();
            for (int loop = 0; loop < count; loop++)
            {
                TreeNode root = new TreeNode();
                
                root.Text = ParentNode[loop, 1];
                root.Target = "_blank";
                root.NavigateUrl = "tree.aspx";
    
                MySqlCommand cmdChild = new MySqlCommand("SELECT DISTINCT * from pwpartstruct WHERE p_ident =" + ParentNode[loop, 0], conn);
                MySqlDataReader readerChild = cmdChild.ExecuteReader();
    
                while (readerChild.Read())
                {
                    TreeNode child = new TreeNode();
                    child.Text = readerChild.GetValue(readerChild.GetOrdinal("c_ident")).ToString();
                    child.Target = "_blank";
                    child.NavigateUrl = "Default.aspx";
                    child.ToolTip = "Artikelnummer: " + readerChild.GetValue(readerChild.GetOrdinal("c_ident")).ToString();
    
                    root.ChildNodes.Add(child);
                }
                readerChild.Close();
                TreeView1.Nodes.Add(root);
            }
            TreeView1.CollapseAll();
            conn.Close();
        }

    Comment

    Working...
    X