powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Представление данных деревом <ul><li> LI по таблице.
9 сообщений из 9, страница 1 из 1
Представление данных деревом <ul><li> LI по таблице.
    #38745762
Здравствуйте!
Есть таблица с данными и в таблице есть поля Id и ParentId.
Как Вы поняли это наследник и родитель.

Необходимо поэтой таблице построить дерево, вложенностей неограниченно. Сижу полдня ломаю голову, куча алгоритмов перепробовал самописных

C
...
Рейтинг: 0 / 0
Представление данных деревом <ul><li> LI по таблице.
    #38745770
Денис Евсеев,

Знаю что это Рекурсия, только как ее правильно оформить не могу понять. За примеры какие нибудь буду очень признателен
...
Рейтинг: 0 / 0
Представление данных деревом <ul><li> LI по таблице.
    #38745796
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Евсеев,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public static StringBuilder RenderTree(ICollection<ItemType> items, int? parentId = null, StringBuilder builder = null)
{
   if (builder == null) 
      builder = new StringBuilder();
   var list = items // получаем всех "детей"
      .Where(x => x.ParentId == parentId)
      .ToList();
   if(list.Count == 0)  // нечего рендерить
      return builder;
   builder.Append("<ul>");
   foreach(var item in items.Where(x => x.ParentId == parentId))
   {
      builder.Append("<li>").Append(item.Name);
      RenderTree(items, item.Id, builder); // рекурсия
      builder.Append("</li>");
   }
   return builder.Append("</ul>");
}


// пример:

@Html.Raw(RenderHelper.RenderTree(items).ToString())
...
Рейтинг: 0 / 0
Представление данных деревом <ul><li> LI по таблице.
    #38745930
hVostt,

Можешь теперь подсказать, как наполнить ICollection<DataTable> items

автор listCollection.Add(
Id = (int)reader["Id"],
ParentId = (int)reader["ParentId"],
Title = (string)reader["Title"]);


Не помогает вот это((
...
Рейтинг: 0 / 0
Представление данных деревом <ul><li> LI по таблице.
    #38745939
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы уверены, что вам нужна коллекция таблиц?
Денис Евсеев ICollection<DataTable> items
...
Рейтинг: 0 / 0
Представление данных деревом <ul><li> LI по таблице.
    #38745942
SQL2008,

Мне же сюда
авторpublic static StringBuilder RenderTree(ICollection<ItemType> items, int? parentId = null, StringBuilder builder = null)


Нужно передавать ICollection<ItemType> items
А я не знаю как его наполнить
...
Рейтинг: 0 / 0
Представление данных деревом <ul><li> LI по таблице.
    #38745944
SQL2008,

<DataTable> - это класс мой, по которому создана моя единственная таблица в проекте
...
Рейтинг: 0 / 0
Представление данных деревом <ul><li> LI по таблице.
    #38745972
hVostt,

Спасибо у меня заработало!
Немного исправил только код
...
Рейтинг: 0 / 0
Представление данных деревом <ul><li> LI по таблице.
    #38746009
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис ЕвсеевSQL2008,

Мне же сюда
авторpublic static StringBuilder RenderTree(ICollection<ItemType> items, int? parentId = null, StringBuilder builder = null)


Нужно передавать ICollection<ItemType> items
А я не знаю как его наполнить

В общем случае
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
// имеем
ICollection<ItemType> items;
// создаем вашим конструктором
ItemType it = new ItemType();
// как-то заполняем данными созданный объект it
...
// добавляем в коллекцию
items.Add(it);
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Представление данных деревом <ul><li> LI по таблице.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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