Ciao Claudio, prendendo spunto dal tuo suggerimento, sono arrivato a modificarlo leggermente (mi generava errore) consultando anche su msdn (ma sono comunque partito da te!) ottenendo già un ottimo risultato:
nel pageLoad del file .cs:
// ********** Inizio della gestione del TreeView: ******************** //
if (!Page.IsPostBack)
{
//Creo la Root principale dell'albero:
TreeNode Root = new TreeNode();
Root.Text = "Elenco Cataloghi Presenti (pdf)";
Root.PopulateOnDemand = false;
//memorizzo nel dataset le info prelevate dalla tabella destinazioni:
DataSet ResultSet = RunQuery("SELECT * FROM destinazioni");
DataSet ResultSet2 = RunQuery("SELECT * FROM cataloghi");
// Creo i livelli per i nodi padri:
if (ResultSet.Tables.Count > 0)
{
// Per ogni record creo un nodo padre nel treeview:
foreach (DataRow row in ResultSet.Tables[0].Rows)
{
if (!Page.IsPostBack)
{
//Creo il primo gruppo di nodi:
TreeNode Group1 = new TreeNode();
Group1.Text = row["NomeDestinazione"].ToString();
Group1.Value = row["id_destinazione"].ToString();
Group1.PopulateOnDemand = false;
// Creo i livelli per i nodi figli:
if (ResultSet2.Tables.Count > 0)
{
// Per ogni record creo un nodo figlio nel treeview:
foreach (DataRow row2 in ResultSet2.Tables[0].Rows)
{
//Creo i nodi figli:
TreeNode Group2 = new TreeNode();
Group2.Text = row2["NomeCatalogo"].ToString();
Group2.Value = row2["PercorsoFile"].ToString();
Group2.PopulateOnDemand = true;
Group1.ChildNodes.Add(Group2);
}
Root.ChildNodes.Add(Group1);
}
}
//con.Close();
}
//Root.ChildNodes.Add(Group2);
//Group1.ChildNodes.Add(Group1b);
TreeView1.Nodes.Add(Root);
TreeView1.ExpandDepth = 1;//Espandi Root
}
}
Come vedi ho usato (sempre prendendo di esempio qualche suggerimento da msdn) un collegamento tra il treeView ed il DB da codice, con un dataset ed un resultset. Alla fine sono riuscito a popolare tutti i nodi padre e i nodi figli...ma...c'è un ma!
I nodi figli riesco a popolarli solo con tutti i dati presenti nella seconda tabella del Db, mentre mi dovrebbe popolare per ogni nodo padre i corrispondenti nodi figli. So che sono poco chiaro, allora cerco di spiegrami meglio:
1) Ho il database con due tabelle relazionate tra loro, con una relazione di tipo uno a molti (e qui non credo di avere dei problemi in quanto l'ho testato prima)
2) Ho il treeView che nei nodi padri legge la prima tabella del Db.
3) Sempre nel TreeView viene letta la seconda tabella del Db e popolati i nodi figli associandoli pero al rispettivo nodo padre (prima tabella)
Ma questo non succede, è come se non venisse filtrata la relazione... essendomi dilungato una cifra arrivo al dunque: Come posso fare per "filtrare" le relazioni?
Grazie mille!
Modificato da ricardo78 il 27 marzo 2010 11.59 -