Я пытаюсь создать систему вложенных / многопоточных комментариев в ASP.NET. Я не знаю, как ребята из PHP это делают. Это намного сложнее, чем предполагалось вначале.
Я изо всех сил пытаюсь получить иерархические данные для вывода пользователю, но это не работает.
У меня есть таблица с текстом, itemID и parentID.
Я хочу отображать информацию в формате дерева, но стандартный элемент управления asp.net просто не работает ...
Может ли кто-нибудь указать мне в правильном направлении, как вывести это в древовидное представление. Я пробовал вложение повторителей, прямое создание html из программной части и элемент управления treeview.
Я все еще не нашел решения ... Кто-нибудь может мне помочь?





Насколько я понимаю, если у вас есть таблица базы данных с иерархическими данными, у вас есть два варианта: создать свой собственный источник данных или программно привязать древовидное представление к таблице базы данных.
У меня нет кода для вас, но вы можете выполнить следующие действия:
почти все это делается с помощью TreeView.Nodes.Add (theNewNode), где theNewNode - это экземпляр объекта TreeNode
Я знаю, что все это звучит очень запутанно, но я делал это раньше. Я нашел отличную информацию в книге Стивена Вальтера по ASP.NET Unleashed, в которой есть целые разделы, посвященные этому.
Быстро, головой (сейчас не могу проверить в VS2k8), я бы сделал что-то вроде этого, используя Linq to SQL
private void BuildTree()
{
List<Item> items = from item in dataContext.Items
select item;
List<Item> rootItems = items.FindAll(p => p.ParentID == null );
foreach ( Item item in rootItems )
{
TreeViewNode tvi = new TreeViewNode(item.text);
BuildChildNodes(tvi, items, item.ID);
YourTreeNodeName.Nodes.Add(tvi);
}
}
private void BuildChildNodes(TreeViewNode parentNode, List<Item> items, long parentID)
{
List<Item> children = items.FindAll ( p => p.ParentID = parentID );
foreach( Item item in children)
{
TreeViewNode tvi = new TreeViewNode(item.text);
parentNode.Nodes.Add(tvi);
BuildChildNodes(tvi, items, item.ID);
}
}