New to Telerik UI for ASP.NET AJAX? Download free 30-day trial

How to Create An Entry or Select a Node

How to Create An Entry or Select a Node

By creating an entry with the CreateEntry() method a node can be set as selected (or checked when the CheckBoxes functionality is enabled). This article describes how to select a node from the dropdown of the RadDropDownTree control.

As of Q2 2013 release of the RadControls controls this scenario is supported also when the CheckBoxes property is set to TriState.

Below is the example demonstrating how to achieve that by using the NodeDataBound event:

<telerik:RadDropDownTree RenderMode="Lightweight" runat="server" ID="RadDropDownTree1" CheckBoxes="CheckChildNodes"
    Width="300px" DataFieldID="ID" DefaultMessage="Select ..." DataFieldParentID="ParentID"
    DataTextField="Text">  
    <DropDownSettings  Width="300px"/>
</telerik:RadDropDownTree>
protected void Page_Load(object sender, EventArgs e)
{

    RadDropDownTree1.DataSource = GetData();
    RadDropDownTree1.NodeDataBound += RadDropDownTree1_NodeDataBound;

    if (!IsPostBack)
    {
        RadDropDownTree1.DataBind();
    }
}

void RadDropDownTree1_NodeDataBound(object sender, Telerik.Web.UI.DropDownTreeNodeDataBoundEventArguments e)
{
    if (e.DropDownTreeNode.Text == "Text2 " || e.DropDownTreeNode.Text == "Text4 ")
        e.DropDownTreeNode.CreateEntry();
}

public DataTable GetData()
{
    DataTable table = new DataTable();
    table.Columns.Add("ID");
    table.Columns.Add("ParentID");
    table.Columns.Add("Value");
    table.Columns.Add("Text");


    table.Rows.Add(new String[] { "1", null, "customValue1", "Text1 "});
    table.Rows.Add(new String[] { "2", "1", "customValue2", "Text2 " });
    table.Rows.Add(new String[] { "3", "2", "customValue3", "Text3 " });
    table.Rows.Add(new String[] { "4", "3", "customValue4", "Text4 " });
    table.Rows.Add(new String[] { "5", "3", "customValue5", "Text5 " });
    table.Rows.Add(new String[] { "6", "5", "customValue2", "Text6 " });
    table.Rows.Add(new String[] { "7", "6", "customValue2", "Text7 " });
    table.Rows.Add(new String[] { "8", "7", "customValue2", "Text8 " });
    table.Rows.Add(new String[] { "9", "1", "customValue9", "Text9 " });
    table.Rows.Add(new String[] { "10", "1", "customValue10", "Text10 " });

    return table;
}
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

    RadDropDownTree1.DataSource = GetData()

    AddHandler RadDropDownTree1.NodeDataBound, AddressOf RadDropDownTree1_NodeDataBound

    If Not IsPostBack Then
        RadDropDownTree1.DataBind()
    End If
End Sub

Private Sub RadDropDownTree1_NodeDataBound(sender As Object, e As Telerik.Web.UI.DropDownTreeNodeDataBoundEventArguments)
    If e.DropDownTreeNode.Text = "Text2 " OrElse e.DropDownTreeNode.Text = "Text4 " Then
        e.DropDownTreeNode.CreateEntry()
    End If
End Sub

Public Function GetData() As DataTable
    Dim table As New DataTable()
    table.Columns.Add("ID")
    table.Columns.Add("ParentID")
    table.Columns.Add("Value")
    table.Columns.Add("Text")


    table.Rows.Add(New [String]() {"1", Nothing, "customValue1", "Text1 "})
    table.Rows.Add(New [String]() {"2", "1", "customValue2", "Text2 "})
    table.Rows.Add(New [String]() {"3", "2", "customValue3", "Text3 "})
    table.Rows.Add(New [String]() {"4", "3", "customValue4", "Text4 "})
    table.Rows.Add(New [String]() {"5", "3", "customValue5", "Text5 "})
    table.Rows.Add(New [String]() {"6", "5", "customValue2", "Text6 "})
    table.Rows.Add(New [String]() {"7", "6", "customValue2", "Text7 "})
    table.Rows.Add(New [String]() {"8", "7", "customValue2", "Text8 "})
    table.Rows.Add(New [String]() {"9", "1", "customValue9", "Text9 "})
    table.Rows.Add(New [String]() {"10", "1", "customValue10", "Text10 "})

    Return table
End Function
In this article