ASP.NET 3.5 and above only

ASP.NET TreeView - Performance Sample

Control Performance:


  • Node 0
  • Node 1
  • Node 2
  • Node 3
  • Node 4
  • Node 5
  • Node 6
  • Node 7
  • Node 8
  • Node 9
  • Node 10

Tips to get best performance with the control.

  • Disable Viewstate : If 'EnableViewState' property is set to true, then control needs to carry the previous state on each request. So set this property to 'False' if the state maintanence is not requirred.
  • Populate nodes on-demand: Use the Property, 'ExpandMode' of a node to 'ServerSideCallBack' to load the nodes dynamically.
  • Avoid using custom Images : Try to avoid using the Custom Images like "ExpandImageUrl","CollapseImageUrl" because this will increase the size of control element markup.
[ASPX]

<obout:Tree ID="OboutTree" runat="server" ClientObjectID="_OboutTree" CssClass="vista"
        EnableTheming="True" NodeDropTargets="" OnTreeNodeExpanded="OboutTree1_TreeNodeExpanded"
        Height="300px" Width="200px" EnableViewState="False">
</obout:Tree>
            
[C#]

    void Page_load(object sender, EventArgs e)
    {
        PopulateTree();
    }
    private void PopulateTree()
    {
        for (int i = 0; i <= 10; i++)
        {
            this.OboutTree.Nodes.Add(new Obout.Ajax.UI.TreeView.Node()
            {
                Text = string.Format("Node {0}", i.ToString()),
                Value = i.ToString(),
                ExpandMode = Obout.Ajax.UI.TreeView.NodeExpandMode.ServerSideCallback
            });
        }
    }
    protected void OboutTree1_TreeNodeExpanded(object sender, Obout.Ajax.UI.TreeView.NodeEventArgs e)
    {
        Obout.Ajax.UI.TreeView.Node node = e.Node;
        for (int i = 0; i <= 50; i++)
        {
            e.Node.ChildNodes.Add(new Obout.Ajax.UI.TreeView.Node()
            {
                Text = string.Format("{0} {1}", e.Node.Text, i.ToString()),
                Value = i.ToString(),
                ExpandMode = Obout.Ajax.UI.TreeView.NodeExpandMode.ServerSideCallback
            });
        }
    }
            
[VB]

Private Sub Page_load(ByVal sender As Object, ByVal e As EventArgs)
        Me.Description = "Performance Sample"
        Me.setPageData("LoadOnDmand", "aspnet_sort_after_edit")
        PopulateTree()
End Sub
Private Sub PopulateTree()
        For i As Integer = 0 To 10
            Me.OboutTree.Nodes.Add(New Obout.Ajax.UI.TreeView.Node() With 
            {.Text = String.Format("Node {0}", i.ToString()), .Value = i.ToString(), 
            .ExpandMode = Obout.Ajax.UI.TreeView.NodeExpandMode.ServerSideCallback})
        Next i
End Sub
Protected Sub OboutTree1_TreeNodeExpanded(ByVal sender As Object, ByVal e As Obout.Ajax.UI.TreeView.NodeEventArgs)
        Dim node As Obout.Ajax.UI.TreeView.Node = e.Node
        For i As Integer = 0 To 50
            e.Node.ChildNodes.Add(New Obout.Ajax.UI.TreeView.Node() With
            {.Text = String.Format("{0} {1}", e.Node.Text, i.ToString()), .Value = i.ToString(), 
            .ExpandMode = Obout.Ajax.UI.TreeView.NodeExpandMode.ServerSideCallback})
        Next i
End Sub            
            

"What can I say except Oustanding! Not only was your response clear, concise and complete, it was amazingly quick. I am very impressed and will certainly recommend in future. Thank you :-) "

Pete Davies

Random testimonial   All testimonials