U principu bi trebalo da koristis rekurziju. Recimo da imas podatke u nekoj tabeli, i da svaki red te tabele ima neki indikator koji pokazuje "parent" tog reda (recorda). Pristup u teoriji je da ides po recordima u tabeli, dodas record kao root na treeview. Zatim rekurzijom radis to isto, s tim sto prosledis treeNode na koji ces da dodajes dalje nodove.
Nesto slicno radi ovaj kod, doduse u C#. Naravno, ne mozes da ga primenis direktno u svoj kod, ali se nadam da ti je bar malo jasnije sta bi trebalo da uradis. Srecno!
...
DataSet dataset = UzmiRecorde();
foreach (DataRow row in dataset.nekaTabela.Rows)
{
if (Convert.ToInt32(row["ID_PARENT"]) == 0) // nema parent, pa je to record koji ide kao root node
{
TreeNode ndParent = new TreeNode(row["VREDNOST"].ToString());
twSource.Nodes.Add(ndParent);
RecurseTreeView(row, ndParent);
}
}
....
private static void RecurseTreeViev(DataRow row, TreeNode ndParent)
{
System.Data.DataSet data = UzmiChildRecorde(row["ID_PARENT"]);
if (data.Tables[0].Rows.Count > 0)
{
foreach (DataRow r in data.Tables[0].Rows)
{
TreeNode ndChild = ndParent.Nodes.Add(r["VREDNOST"].ToString());
RecurseTreeView(r, ndChild);
}
}
}
[Ovu poruku je menjao Sandra_G dana 20.03.2006. u 14:35 GMT+1]
The important thing is not to stop questioning. Curiosity has its own reason for existing. - Albert Einstein