[CLOSED] Render Treepanel in codebehind

  1. #1

    [CLOSED] Render Treepanel in codebehind

    Hi,

    We want to render the treepanel content by selecting value from a combobox, or what is the best way to do it. here is runnable sample code.
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
            }
        }
        protected void ChangeListItem(object sender, DirectEventArgs e)
        {
    
            //Ext.Net.panelItemWPanel panelItemW = new Ext.Net.panelItemWPanel();
    
            //this.ViewportMain.Items.Add(panelItemW);
    
            //panelItemW.ID = "panelItemWPanel1";
            //panelItemW.Width = Unit.Pixel(300);
            //panelItemW.Height = Unit.Pixel(450);
            //panelItemW.Icon = Icon.BookOpen;
            //panelItemW.Title = "Catalog";
            //panelItemW.AutoScroll = true;
    
            string parentID = ComboBoxW.SelectedItem.Value;
    
            List<Runner> Runners = this.GetData().Where(parID => parID.Parent_ID == parentID).ToList(); ;
    
            Ext.Net.Node root = new Ext.Net.Node()
            {
                Text = "Root",
                NodeID = "Root_ID"
            };
            root.Expanded = true;
    
            panelItemW.Root.Add(root);
    
            foreach (var emenus in Runners)
            {
    
                Ext.Net.Node emenusNode = new Ext.Net.Node();
                emenusNode.Text = emenus.Name;
                emenusNode.NodeID = emenus.Name;
                emenusNode.Leaf = false;
                root.Children.Add(emenusNode);
    
                //panelItemW.GetRootNode().Expand(false);
    
            }
    
            panelItemW.Render();
        }
    
        public class Runner
        {
            public Runner(string name, string parent_ID) { this.Name = name; this.Parent_ID = parent_ID; }
            public string Name { get; set; }
            public string Parent_ID { get; set; }
    
        }
    
        public List<Runner> GetData()
        {
            Runner zatopek = new Runner("zatopek", "1");
            Runner lewis = new Runner("lewis", "1");
            Runner morceli = new Runner("morceli", "1");
    
            Runner runner2 = new Runner("runner2", "2");
            Runner runner21 = new Runner("runner21", "2");
            Runner runner22 = new Runner("runner22", "2");
    
            return new List<Runner> { zatopek, lewis, morceli };
        }
    
        
    </script>
    <!DOCTYPE html>
    <html>
    <head id="Head1" runat="server">
    </head>
    
    <body>
        <form id="Form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
        <ext:Viewport ID="ViewportMain" runat="server" Layout="BorderLayout">
    
            <Items>
                <ext:TreePanel ID="panelItemW" runat="server" Region="Center" 
                    AutoScroll="true" Lines="false" UseArrows="true" CollapseFirst="false" RootVisible="true"
                    Width="175">
                    <TopBar>
                        <ext:Toolbar ID="ToolbarW" runat="server" Height="50">
                            <Items>
                                <ext:ComboBox ID="ComboBoxW" runat="server" Width="160" Mode="Local"
                                    Editable="true" SelectOnFocus="true">
                                    <Items>
                                        <ext:ListItem Text="Menu 1" Value="1" />
                                        <ext:ListItem Text="Menu 2" Value="2" />
                                        <ext:ListItem Text="Menu 3" Value="3" />
                                    </Items>
                                    <DirectEvents>
                                        <Select OnEvent="ChangeListItem">
                                        </Select>
                                    </DirectEvents>
                                </ext:ComboBox>
                            </Items>
                        </ext:Toolbar>
                    </TopBar>
                    <%-- <Root>
                        <ext:Node Text="root" NodeID="0">
                        </ext:Node>
                    </Root>--%>
                </ext:TreePanel>
            </Items>
        </ext:Viewport>
        </form>
    </body>
    </html>
    Last edited by Daniil; Jul 04, 2013 at 1:53 PM. Reason: [CLOSED]
  2. #2
    Hi @Digital.Dynamics,

    Your approach is good. You just need to populate the root's Children before adding it to the TreePanel's Root.

    foreach (var emenus in Runners)
    {
        Ext.Net.Node emenusNode = new Ext.Net.Node();
        emenusNode.Text = emenus.Name;
        emenusNode.NodeID = emenus.Name;
        emenusNode.Leaf = false;
        root.Children.Add(emenusNode);
    }
    
    panelItemW.Root.Add(root);
    If you want you can investigate another approaches to load nodes remotely.
    https://examples2.ext.net/#/TreePane...Direct_Method/
    https://examples2.ext.net/#/TreePanel/Loaders/Page/
    https://examples2.ext.net/#/TreePane...Using_Handler/
    https://examples2.ext.net/#/TreePane...rs/WebService/

Similar Threads

  1. Render server side treepanel on ColumnLayout
    By bjones in forum 1.x Help
    Replies: 1
    Last Post: Jan 16, 2012, 9:25 AM
  2. [CLOSED] TreePanel - Problem with render into Table
    By tlfdesarrollo in forum 1.x Legacy Premium Help
    Replies: 12
    Last Post: Jan 11, 2012, 6:56 PM
  3. Replies: 4
    Last Post: Dec 27, 2010, 10:48 AM
  4. [CLOSED] Refreshing TreePanel in codebehind
    By jcanton in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Jul 07, 2009, 8:05 AM
  5. TreePanel can not show in codebehind
    By bluebirdzx in forum 1.x Help
    Replies: 2
    Last Post: Apr 20, 2009, 11:37 PM

Tags for this Thread

Posting Permissions