Function automatically gets called more than once in Page Load

  1. #1

    Function automatically gets called more than once in Page Load

    Generating Tree Panel dynamically using table "MenuTreeDetails" attached image for the table

    protected void Page_Load(object sender, EventArgs e)
            {
    			if(IsCallback)
    				return;
    			tree			= new TreePanel();
    			MenuItemOBJ		= new MenuItem();
                FetchData();
                InitializeTree(); 
                this.PlaceHolder1.Controls.Add(tree);
                CloseDBConnection();
            }
    InitializeTree() repeatedly executing

    ASPX FILE:

    <%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="TreePanelWebForm.aspx.cs"
    Inherits="ExtNETWebApplication_1.TreePanelWebForm" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <!DOCTYPE html>
        
    <html>
    <head id="Head1" runat="server">
        <title>Multi Node TreePanel built from code-behind - Ext.NET 
        Examples</title>
        <link href="../Styles/examples.css" rel="stylesheet" />
        <link href="Styles/Style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="Form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" />
            
            <h1>Multi Node TreePanel Built From Code-Behind</h1>
    
            <asp:PlaceHolder ID="PlaceHolder1" runat="server" />
        </form>
    </body>
    </html>

    CS FILE:

    using System;
    using System.Data;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Ext.Net;
    using System.Data.SqlClient;
    using System.Configuration;
    
    namespace ExtNETWebApplication_1
    {
        public partial class TreePanelWebForm : System.Web.UI.Page
        {
            SqlDataAdapter		dataAdapter		= null;
            SqlConnection       con				= null;
            TreePanel			tree			= null;
            MenuItem            MenuItemOBJ		= null;
    
            protected void Page_Load(object sender, EventArgs e)
            {
    			if(IsCallback)
    				return;
    			tree			= new TreePanel();
    			MenuItemOBJ		= new MenuItem();
                FetchData();
                InitializeTree();
                this.PlaceHolder1.Controls.Add(tree);
                CloseDBConnection();
            }
    
            public void InitializeTree()
            {
                tree.ID         = "TreePanel1";
                tree.Width      = Unit.Pixel(300);
                tree.Height     = Unit.Pixel(450);
                tree.Icon       = Icon.BookOpen;
                tree.Title      = "Catalog";
                tree.AutoScroll = true;
    
                Ext.Net.Button btnExpand            = new Ext.Net.Button();
                btnExpand.Text                      = "Expand All";
                btnExpand.Listeners.Click.Handler   = tree.ClientID + ".expandAll();";
    
                Ext.Net.Button btnCollapse          = new Ext.Net.Button();
                btnCollapse.Text                    = "Collapse All";
                btnCollapse.Listeners.Click.Handler = tree.ClientID + ".collapseAll();";
    
                Toolbar toolBar = new Toolbar();
                toolBar.ID      = "Toolbar1";
    
                toolBar.Items.Add(btnExpand);
                toolBar.Items.Add(btnCollapse);
                tree.TopBar.Add(toolBar);
    
                StatusBar statusBar = new StatusBar();
                statusBar.ID        = "StatusBar1";
                statusBar.AutoClear = 1000;
    
                tree.BottomBar.Add(statusBar);
    
                tree.Listeners.ItemClick.Handler    = statusBar.ClientID + ".setStatus({text: 'Node Selected: <b>' + record.data.text + '</b>', clear: false});";
                tree.Listeners.ItemExpand.Handler   = statusBar.ClientID + ".setStatus({text: 'Node Expanded: <b>' + item.data.text + '</b>', clear: false});";
                tree.Listeners.ItemExpand.Buffer    = 30;
                tree.Listeners.ItemCollapse.Handler = statusBar.ClientID + ".setStatus({text: 'Node Collapsed: <b>' + item.data.text + '</b>', clear: false});";
                tree.Listeners.ItemCollapse.Buffer  = 30;
    			#region commented code
                //Ext.Net.Node root = new Ext.Net.Node()
                //{
                //    Text = nodeName,
                //    Icon = Icon.None
                //};
    
                //root.Expanded = true;
                //tree.Root.Add(root);
    
                //foreach (SubMenu subMenu in subMenus)
                //{
                //    Ext.Net.Node subMenuNode = new Ext.Net.Node()
                //    {
                //        Text = subMenu.subMenuName,
                //        Icon = Icon.None
                //    };
    
                //    root.Children.Add(subMenuNode);
    
                //    foreach (SubMenuChildren subMenuChildren in subMenu.SubMenuChildrens)
                //    {
                //        Ext.Net.Node subMenuChildrensNode = new Ext.Net.Node()
                //        {
                //            Text = subMenuChildren.subMenuChildrenName,
                //            Icon = Icon.None,
                //            Leaf = true
                //        };
    
                //        subMenuNode.Children.Add(subMenuChildrensNode);
                //    }
                //}
    			#endregion
                Ext.Net.Node root = new Ext.Net.Node()
                {
                    Text = MenuItemOBJ.treeName,
                    Icon = Icon.None
                };
    
                root.Expanded = true;
                tree.Root.Add(root);
    
                foreach(MenuItem menuItemTree in MenuItemOBJ.MenuList )
                {
                    Ext.Net.Node MenuChildNode = new Node()
                    {
                        Text = menuItemTree.treeName,
                        Icon = Icon.None
                    };
                    MenuChildNode.Expanded = true;
                    root.Children.Add(MenuChildNode);
    
                    if (menuItemTree != null)
                    {
                        if (menuItemTree.MenuList != null && menuItemTree.MenuList.Count > 0)
                            GetChildrenMenuNodeList(MenuChildNode, menuItemTree.MenuList);
                    }
                }
            }
    
            private void GetChildrenMenuNodeList(Node MenuChildNodeChildren, List<MenuItem> list)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    Ext.Net.Node child = new Ext.Net.Node()
                    {
                        Text = list[i].treeName,
                        Icon = Icon.None
                    };
                    child.Expanded = true;
                    MenuChildNodeChildren.Children.Add(child);
    
                    if (list[i].MenuList != null && list[i].MenuList.Count > 0)
                    {
                        GetChildrenMenuNodeList(MenuChildNodeChildren.Children[i], list[i].MenuList);
                    }
                }
            }
    
            public void FetchData()
            {
               // int masterIDCounter = 0;
                DataSet dataSet        = new DataSet();
                try
                {
                    string connection = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                    con = new SqlConnection(connection);
                    SqlCommand cmd = null;
    
                    con.Open();
                    cmd = new SqlCommand("SELECT * FROM MenuTreeDetails", con);
    
                    dataAdapter = new SqlDataAdapter(cmd);
                    dataAdapter.Fill(dataSet, "MenuTreeDetails");
    
                    if (dataSet != null && dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0)
                    {
                        for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
                        {
                            if (dataSet.Tables[0].Rows[i]["parent_node"].ToString() == "-1")
                            {
    
                                MenuItemOBJ.slideID     = Int32.Parse(dataSet.Tables[0].Rows[i]["slide_master_id"].ToString());
                                MenuItemOBJ.treeName    = dataSet.Tables[0].Rows[i]["node_name"].ToString();
                                MenuItemOBJ.parentNode  = Int32.Parse(dataSet.Tables[0].Rows[i]["parent_node"].ToString());
    
                                MenuItemOBJ.MenuList    = getChildMenuList(MenuItemOBJ.slideID, dataSet.Tables[0]);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    // Print error message
                    throw ex;
                }
            }
    
            private List<MenuItem> getChildMenuList(int p, DataTable dataTable)
            {
                List<MenuItem> MenuDataList = null;  
                int count   =   0;
                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    if(p == Int32.Parse(dataTable.Rows[i]["parent_node"].ToString()))
                    {
                        if (MenuDataList == null)
                        {
                            MenuDataList = new List<MenuItem>();
                        }
                        MenuDataList.Add(new MenuItem());
                        MenuDataList[count].slideID     = Int32.Parse(dataTable.Rows[i]["slide_master_id"].ToString());
                        MenuDataList[count].treeName    = dataTable.Rows[i]["node_name"].ToString();
                        MenuDataList[count].parentNode  = Int32.Parse(dataTable.Rows[i]["parent_node"].ToString());
                        MenuDataList[count].MenuList    = getChildMenuList(MenuDataList[count].slideID, dataTable);
    
                        count++;
                    }
                }
                return MenuDataList;
            }
    
            public void CloseDBConnection()
            { 
                if (con.State == ConnectionState.Open)
                {
                   con.Close();
                }
            }
        } //End of TreePanelWebForm class
    }
    Attached Thumbnails Click image for larger version. 

Name:	MenuTreeDetail.JPG 
Views:	13 
Size:	23.2 KB 
ID:	10621  
  2. #2
    Hi @Pavan,

    Quote Originally Posted by Pavan View Post
    InitializeTree() repeatedly executing
    Does it mean that Page_Load is repeatedly executing?
  3. #3
    Quote Originally Posted by Daniil View Post
    Does it mean that Page_Load is repeatedly executing?
    Not Page_Load, InitializeTree() repeatedly executing
  4. #4

    Got it :)

    Quote Originally Posted by Daniil View Post
    Does it mean that Page_Load is repeatedly executing?
    Hi Daniil,

    Got it, Need to Mention whether the Tree Leaf is true or false so if i keep false then again it tries find the leaf nodes so at last i made leaf= true then it working fine.

    please close the thread .

Similar Threads

  1. Replies: 8
    Last Post: Jul 12, 2013, 12:01 PM
  2. Replies: 2
    Last Post: Jan 16, 2012, 10:34 AM
  3. Replies: 2
    Last Post: Jul 27, 2010, 11:50 AM
  4. [CLOSED] Datepicker automatically scrolls to itself on page load
    By jchau in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Jul 16, 2010, 8:33 PM
  5. Replies: 13
    Last Post: Feb 24, 2010, 5:34 PM

Posting Permissions