Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 695
  • Last Modified:

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

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
Mateusz_Smietanka
Asked:
Mateusz_Smietanka
1 Solution
 
Akin DeluI’m a software engineer, tech enthusiast and UI/UX lover. Commented:
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
 
Vikram Singh SainiSoftware Engineer cum AD DeveloperCommented:
0
 
Mateusz_SmietankaAuthor Commented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now