Skip to main content

How to: Bind the ASPxTreeList to Data Created at Runtime

  • 2 minutes to read

To bind an ASPxTreeList control to data created at runtime, handle the Page_Init or Page_Load event. In the event handler, assign a data source to the tree list’s DataSource property and call the DataBind() method:

<dx:ASPxTreeList ID="ASPxTreeList1" runat="server"></dx:ASPxTreeList>
using DevExpress.Web.ASPxTreeList;
using DevExpress.Web.Internal;
using System;
using System.Data;
using System.Data.OleDb;
using System.Web;

public partial class _Default : System.Web.UI.Page {

    protected override void Page_Init(EventArgs e) {
        InitTreeList(ASPxTreeList1);
        ASPxTreeList1.DataBind();
    }

    private void InitTreeList(ASPxTreeList tl) {
        tl.SettingsSelection.AllowSelectAll = true;
        tl.SettingsSelection.Enabled = true;
        tl.KeyFieldName = "ID";
        tl.ParentFieldName = "ParentID";
        tl.DataSource = CreateDataTable(CreateDataAdapter());
    }

    OleDbDataAdapter CreateDataAdapter() {
        string connectionString =
        @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Databases\Departments.mdb";
        OleDbConnection myConnection = new OleDbConnection(connectionString);
        string query =
        "SELECT [ID], [ParentID], [Department], [Budget], [Location] FROM [Departments]";
        return new OleDbDataAdapter(query, myConnection);
    }

    DataTable CreateDataTable(OleDbDataAdapter myAdapter) {
        DataTable dt = new DataTable();
        DataSet testData = new DataSet();
        myAdapter.Fill(testData);
        return testData.Tables[0];
    }
}