Search code examples
data-bindingtelerikradtreeview

How can I AppendDataBoundItems to a specific node using Teleriks RadTreeView control?


The AppendDataBoundItems property on Teleriks RadTreeView control allows you to bind data along side your static values.

So your tree might look like

  • Static Item A
  • Static Item B
  • Static Item C
  • Databound Item A
  • Databound Item B
  • Databound Item C

But I'd like to have all my bound values under a specific node, like

  • Static Item A
  • Static Item B
  • Static Item C
    • Databound Item A
    • Databound Item B
    • Databound Item C

I do realize I can manipulate the data to accomplish this effect, but I'm not comfortable moving UI code into my stored proc.

Is there any other way?


Solution

  • I'm starting to think this isn't possible, so I just added the items myself.

    For future reference to anybody else looking for how to do this, here is the manual way.

    Default2.aspx

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="TelerikTreetoProc._Default2" %>
    <%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="scriptManager1" runat="server" />
            <telerik:RadTreeView ID="treeSideBarCommands" Runat="server">
                <Nodes>
                    <telerik:RadTreeNode runat="server" Text="Static Item A" />
                    <telerik:RadTreeNode runat="server" Text="Static Item B" />
                    <telerik:RadTreeNode runat="server" Text="Static Item C"/>
                </Nodes>
            </telerik:RadTreeView>
        </div>
        </form>
    </body>
    </html>
    

    And my code behind file is

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Web.Configuration;
    using Telerik.Web.UI;
    
    namespace TelerikTreetoProc
    {
        public partial class _Default2 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string sql = "select EmployeeID, FirstName + LastName [name] from Employees";
                string connString = WebConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
                using(var cn = new SqlConnection(connString ))
                using(var cmd = new SqlCommand( sql, cn))
                {
                    cn.Open();
                    cmd.CommandType = CommandType.Text;
                    SqlDataReader dr = cmd.ExecuteReader();
                    RadTreeNode nd = treeSideBarCommands.Nodes[2];
                    while (dr.Read())
                    {
                        nd.Nodes.Add(new RadTreeNode(dr[1].ToString(), dr[0].ToString()));
                    }
                }
            }
        }
    }