Я работаю над этим со вчерашнего дня, и я полностью в тупике. Я работаю в VB.NET, но я могу понять C#, если вы предпочитаете отвечать на него таким образом.Как построить бесконечную иерархию деревьев?
В принципе у меня есть элементы из базы данных SQL с идентификаторами и идентификаторами родительских и мне нужно, чтобы поместить их в дерево как так:
<ul>
<li>Some item
<ul>
<li>Another item
<ul>
<li>This could go forever
<ul>
<li>Still going</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
В настоящее время у меня есть вложенное ретранслятор, который работает, но это заставляет меня только второй уровень. Это выглядит примерно так:
<asp:Repeater ID="parent" runat="server">
<ItemTemplate>
<ul>
<li><span><%#Container.DataItem("Name")%></span>
<asp:Repeater ID="child" DataSource='<%#CType(Container.DataItem, DataRowView).Row.GetChildRows("relation")%>' runat="server">
<ItemTemplate>
<ul>
<li><span><%#Container.DataItem("Name")%></span></li>
</ul>
</ItemTemplate>
</asp:Repeater>
</li>
</ul>
</ItemTemplate>
</asp:Repeater>
Отношение как это:
ds.Relations.Add("relation",
ds.Tables("Items").Columns("ID"),
ds.Tables("Items").Columns("ParentID"),
False)
Я понимаю, почему это не будет работать, потому что он не имеет шаблон для продолжения дерева. Поэтому я пытаюсь найти способ обойти это.
Я рассмотрел возможность написания функции, чтобы просто построить строку в коде позади и вставить ее в html с помощью asp-тега. Я не был уверен, как это сделать, вытаскивая данные из базы данных.