Заполнить из базы данных дерево значений (TreeView) - C#
Формулировка задачи:
Доброго дня,
хочу заполнить из базы данных дерево значений (структура дерева заранее известна), но из той информации которую нашел смог сделать только два уровня:
то что, по-идее, должно было быть добавленным в третий уровень - добавляется также во второй.
Но уже вижу что такой подход есть неприемлемым, т.к. существенно тормозит систему...
Следовательно вопрос: хотелось бы увидеть пример добавления ноду значений в его подуровень по событию нажатия на него пользователем...
public void fillTreeView()
{
treeView1.Nodes.Clear();
TreeNode node;
foreach (DataRow row in dal.GetAllAreas().Rows)
{
node = treeView1.Nodes.Add(row[1].ToString());
foreach (DataRow row1 in dal.GetAllStreetAreas(Convert.ToInt32(row[0])).Rows)
{
node.Nodes.Add(row1[0].ToString(), row1[1].ToString());
//foreach (DataRow row2 in dal.GetAllNumHouseStreet(Convert.ToInt32(row1[0]), Convert.ToInt32(row[0])).Rows)
//{
// node.Nodes[0].Nodes.Add(row2[0].ToString());
//}
}
}
}Решение задачи: «Заполнить из базы данных дерево значений (TreeView)»
textual
Листинг программы
private void treeView1_Click(object sender, EventArgs e)
{
TreeViewHitTestInfo tvht;
Point pt = treeView1.PointToClient(MousePosition);
tvht = treeView1.HitTest(pt);
if (tvht != null)
{
if (tvht.Node.Nodes.Count == 0)
{
for (int i = 0; i < 100; i++)
tvht.Node.Nodes.Add(tvht.Node.Text + i);
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
treeView1.Nodes.Add("Item" + i);
}
}