powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Построение дерева
3 сообщений из 3, страница 1 из 1
Построение дерева
    #32465981
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задачка следующая:

Есть иерархическая таблица (поля: nID и nParentID) в MS SQL Server.
Подскажите пожалуйста (желательно примерчик), как средствами ADO.NET, построить TreeView, основанное на данных вышеуказанной таблицы? Я могу построить такое дерево, если количество уровней статично. А как построить это дерево с динамическим кол-ом уровней?
И ещё вопросик: можно ли, при выборе определённого узла построенного дерева, узнать к какому уровню этот узел относится?

Заранее благодарен за полезную информацию.
...
Рейтинг: 0 / 0
Построение дерева
    #32466075
Dronopotamus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот часть кода, отвечающая за построение дерева, в некоем DBTree : TreeView :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
#region Построение дерева
private System.Collections.Hashtable tbl = new Hashtable();

private void DeleteNodes()
{
	if (tbl.Count ==  0 ) return;
	DBTreeGroup node;
	IDictionaryEnumerator en = tbl.GetEnumerator();
	while (en.MoveNext())
	{
		if (en.Current is DBTreeGroup)
		{
			node = en.Current as DBTreeGroup;
			Nodes.Remove(node);
		}
	}
}

private void BuildTree()
{
	if (cm == null) return;
	//удалим только те ноды, которые мы добавили
	DeleteNodes();
	tbl.Clear();
	IList list = cm.List; //это наша таблица
	for (int i= 0 ; i< list.Count; i++)
	{
		object val_prnt = GetParent(i); //это значение в поле ParentID
		object val_id = GetValue(i); //это значение в поле Value
		object val_txt = GetDisplay(i); //это значение в поле Display
		
		DBTreeGroup child = new DBTreeGroup(val_txt.ToString().Trim(), i);

		if (tbl.ContainsKey(val_prnt))
		{
			DBTreeGroup parent = (DBTreeGroup)tbl[val_prnt];
			parent.Nodes.Add(child);
		}
		else
			Nodes.Add(child);
		tbl.Add(val_id, child);
	}
	if (Nodes.Count >  0 ) this.SelectedNode = Nodes[ 0 ];
}

#endregion
...
Рейтинг: 0 / 0
Построение дерева
    #32466844
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за информацию.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Построение дерева
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]