Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Kevon K. Hayes 255 posts 281 karma points
    Dec 15, 2009 @ 02:19
    Kevon K. Hayes
    0

    Node getting created under incorrect node

    I have a small issue that I'm trying to work through.  When I go to create a child node under a child node, it gets created as a child of the parent and not a child of a child?

    e.g. ...

    -root node
    --node (I try to create a new node here)
    --node (it goes here for some reason)
    ---node(and not here)

    Here's my code:

    namespace i8Menus
    {
        public class loadi8MenuTree : BaseTree
        {
            public loadi8MenuTree(string application):base(application)
            {
           
            }

            protected override void CreateRootNode(ref XmlTreeNode rootNode)
            {
                rootNode.Icon = FolderIcon;
                rootNode.OpenIcon = FolderIconOpen;
                rootNode.HasChildren = true;
                rootNode.NodeType = TreeAlias;
                rootNode.NodeID = "init";
            }
                                         
            protected override void CreateAllowedActions(ref List<IAction> actions)
            {
                actions.Clear();
                actions.Add(ActionNew.Instance);
                actions.Add(ActionDelete.Instance);
                actions.Add(ActionMove.Instance);
                actions.Add(ActionSort.Instance);
                actions.Add(ContextMenuSeperator.Instance);

                actions.Add(ActionRefresh.Instance);
                //base.CreateAllowedActions(ref actions);
            }

            public override void RenderJS(ref System.Text.StringBuilder Javascript)
            {
                 Javascript.Append(
                @"
                        function openi8MenuTree(menuID)
                        {
                            parent.right.document.location.href = 'plugins/editi8MenuTree.aspx?menuID=' + menuID;
                        }
                ");

                Javascript.Append(
    @"
                        function openi8SubMenuTree(menuID)
                        {
                            parent.right.document.location.href = 'plugins/editi8SubMenuTree.aspx?menuID=' + menuID;
                        }
                ");
            }


            public override void Render(ref XmlTree tree)
            {
                IRecordsReader reader = Application.SqlHelper.ExecuteReader("SELECT * FROM i8Menus");

                while (reader.Read())
                {
                    // I'm probably missing a statement here...

                    XmlTreeNode xNode = XmlTreeNode.Create(this);
                    xNode.NodeID = reader.GetInt("menuID").ToString();
                    xNode.HasChildren = true;
                    xNode.Text = reader.GetString("menuName");
                    xNode.Icon = "i8TreeIcon.gif";
                    xNode.Action = "javascript:openi8MenuTree(" + reader.GetInt("menuID").ToString() + ")";

                    tree.Add(xNode);
                }

            }
        }
    }

  • Kevon K. Hayes 255 posts 281 karma points
    Dec 16, 2009 @ 16:06
    Kevon K. Hayes
    0

    I'm able to add a child node under a child node now, I added the following line to the code below:      

     

    public override void Render(ref XmlTree tree)
            {
                IRecordsReader reader = Application.SqlHelper.ExecuteReader("SELECT * FROM i8Menus");

                while (reader.Read())
                {
                    // I'm probably missing a statement here...

                    XmlTreeNode xNode = XmlTreeNode.Create(this);
                    xNode.NodeID = reader.GetInt("menuID").ToString();
                    xNode.HasChildren = true;
                    xNode.Text = reader.GetString("menuName");
                    xNode.Icon = "i8TreeIcon.gif";
                    xNode.Action = "javascript:openi8MenuTree(" + reader.GetInt("menuID").ToString() + ")";
                    xNode.Source = xNode.HasChildren ? this.GetTreeServiceUrl(xNode.NodeID) : "";
                    tree.Add(xNode);
                }

            }

    ...the problem is my loop is repeating nodes at the child level see example here: http://www.i8dm.com/images/createnodeimage002.png and http://www.i8dm.com/images/createnodeimage003.png I haven't seen a good example on doing this without using a Dictionary datatype. Just looking for suggestions on how to correctly do this without repeating nodes.

Please Sign in or register to post replies

Write your reply to:

Draft