?
Solved

problem with TreeNodeExpanded event System.Web.UI.WeBControls)

Posted on 2010-08-25
4
Medium Priority
?
684 Views
Last Modified: 2013-11-08
Hi!
I 've inserted a TreeView Control into my WebPart class. Everything works properly as long as i don't try tu use TreeNodeExpanded event.When i do that after expanding root the whole control collaps and returns to original state - where all leafs are hidden. Some sample code below.I 've created this control as a class library because later on ideploy my web part to sharepoint services. In general what i want to get is formating text of each node after expanding the tree so that all elements where in proper "column".
in advance thank you for your help
_treeView.TreeNodeExpanded += new TreeNodeEventHandler(someAction);


public void someAction(object sender, EventArgs args)
        {
            this.l1.Text = "dasda";
        }

Open in new window

0
Comment
Question by:Mateusz_Smietanka
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
4 Comments
 
LVL 5

Expert Comment

by:Akin Delu
ID: 33522897
does your treeView get populated from database, if so check your page_load event confirm that you have
if (!Page.IsPostBack)
{
             //your database binding code goes here
}
0
 
LVL 16

Expert Comment

by:Vikram Singh Saini
ID: 33528743
0
 

Accepted Solution

by:
Mateusz_Smietanka earned 0 total points
ID: 33528971
I programmatically populate the tree basing on querry send to SSAS.
private void CreateTreeStruct()
        {
            AdomdConnection conn = new AdomdConnection("Data Source=v-poldim;Catalog=testCube");
            conn.Open();
            AdomdCommand command = new AdomdCommand("select {[Measures].[amount],[measures].[assumption]} on 0,{[proj].[hierarchy].MEMBERS} on 1 from [AX5 SP1 POLDIM SANDBOX] ", conn);
            CellSet _cellSet = command.ExecuteCellSet();
            // get an axe, ax.1 == rows
            Axis axe = _cellSet.Axes[1];
            cc = _cellSet.Cells;
            int k = 0;
            MyTreeNode parent = null;

            foreach (Position position in axe.Positions)
            {
                //Console.WriteLine(position.Members[0].Caption);
                this.AddChild(ref parent, position.Members[0].Caption, GetLabelText(position.Members[0].Caption));
                k += 2;

            }
           // _treeView = new TreeView();
            _treeView.ControlStyle.Font.Name = "Courier New";
            //_treeView.ControlStyle.BackColor = Color.Beige;
            _treeView.ControlStyle.Font.Size = 12;
            panel = new Panel();
            l1 = new Label();
            l1.Text =" Project    Ammount    Assumption";
            l1.BackColor = Color.FromArgb(255,100,100,100);
            l1.Font.Size = 13;
            l1.Width = _treeView.Width;
            panel.Controls.Add(l1);
            panel.Controls.Add(_treeView);
            _treeView.Nodes.Add(parent);
           
           
            
            this.Controls.Add(panel);
            
        }
private void AddChild(ref MyTreeNode parent, String childValue, string label)
        {

            if (parent == null)
            {
                parent = new MyTreeNode(label, childValue);
                
                /* label= "       " + label;
                 label = label.Replace(" "," ");
                 parent.Text = label;*/

                return;
            }
            if (parent.ChildNodes.Count == 0)
            {
                parent.ChildNodes.Add(new MyTreeNode(label, childValue));
                return;
            }
            if (childValue.Length == 0)
                return;

            MyTreeNode node = null;
            //foreach (MyTreeNode node in parent.ChildNodes)
            for (int i = 0; i < parent.ChildNodes.Count; i++)
            {
                node = (MyTreeNode)parent.ChildNodes[i];
                switch (isAncestor(node.Value, childValue))
                {
                    case -1:
                        //parent.ChildNodes.Add(new MyTreeNode(childName, null));
                        //return;
                        break;
                    case 0:
                        this.AddChild(ref node, childValue, label);
                        return;
                    case 1:
                        node.ChildNodes.Add(new MyTreeNode(label, childValue));
                        return; ;
                }
            }

            parent.ChildNodes.Add(new MyTreeNode(label, childValue));


        }

Open in new window

0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
Suggested Courses

765 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question