How to: Bind the ASPxTreeList to Data Created at Runtime
- 2 minutes to read
This example shows how to bind the ASPxTreeList to data created at runtime.
Note
To correctly restore from the ViewState, a tree list needs data. When binding to data created at runtime, you must bind the tree list within the Page_Init event. Don’t handle the Page_Load event because it is fired after the ViewState has been restored.
using System.Data.OleDb;
using DevExpress.Web.ASPxTreeList;
public partial class _Default : System.Web.UI.Page {
protected override void OnInit(EventArgs e) {
base.OnInit(e);
InitTreeList(ASPxTreeList1);
}
protected void Page_Load(object sender, EventArgs e) {
ASPxTreeList1.DataBind();
(ASPxTreeList1 as IPostBackDataHandlerEx).ForceLoadPostData(Tree.ID, HttpContext.Current.Request.Params);
}
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];
}
void InitTreeList(ASPxTreeList tl) {
tl.SettingsSelection.Recursive = true;
tl.SettingsSelection.AllowSelectAll = true;
tl.SettingsSelection.Enabled = true;
tl.KeyFieldName = "ID";
tl.ParentFieldName = "ParentID";
tl.DataSource = CreateDataTable(CreateDataAdapter());
}
}