На aspalliance.com есть хорошая статья: Построение иерархического меню на основе базы данных с использованием ASP.NET 2.0 . Каждый шаг объясняется и красиво иллюстрируется.
"В этой статье Майкл демонстрирует, как создать управляемое базой данных иерархическое меню с помощью всего лишь нескольких строк кода с использованием ASP.NET 2.0. Это обязательное руководство для чтения для всех, кто нуждается в мощном профессиональном меню. и гибкий с упрощенным дизайном. "
Код может быть:
protected void LoadData()
{
DataSet ds = new DataSet();
string connStr = YOUR_CONNECTION_STRING_HERE;
using(SqlConnection conn = newSqlConnection(connStr))
{
string sql = "Select NodeID, Caption, Url, ParentID from Menu";
SqlDataAdapter da = newSqlDataAdapter(sql, conn);
da.Fill(ds);
da.Dispose();
}
ds.DataSetName = "Menus";
ds.Tables[0].TableName = "Menu";
DataRelation relation = newDataRelation("ParentChild",
ds.Tables["Menu"].Columns["NodeID"],
ds.Tables["Menu"].Columns["ParentID"], true);
relation.Nested = true;
ds.Relations.Add(relation);
xmlDataSource.Data = ds.GetXml();
}