gpt4 book ai didi

asp.net - 如何使用自联接和项目表 "hierarchically structure"绑定(bind)asp.net控件?

转载 作者:行者123 更新时间:2023-12-02 21:14:00 25 4
gpt4 key购买 nike

我有以下表格:
1-类别:
-类别ID
-类别名称
-ParentID

2 项:
-项目ID
-元素名称
-类别ID

类别可以采用分层 View ,其中许多子类别彼此内部。
任何最后一个子类别都可以有项目,因此只有最后一个子类别才会显示其下的项目。
该 View 将类似于 TreeView ,当单击某个项目时,它将转到新页面。

我是这样写的:

<asp:Repeater runat="server" ID="rptCategories" OnItemDataBound="rptCategories_ItemDataBound" >
<ItemTemplate>
<div id="type_<%# Eval("Type") %>">
<p >
<a id="<%# Eval("CategoryID") %>" class="Categories">
<%# Eval("CategoryName") %></a>
</p>
<div id="ProjectsDiv_<%# Eval("CategoryID") %>" class="Projects">

<asp:Repeater ID="rptProjects" runat="server">
<ItemTemplate>
<a id="<%# Eval("ProjectID") %>" class="ProjectLink">
<%# GetProject(Eval("ProjectID"))%>

</a>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</ItemTemplate>
</asp:Repeater>


但这代表了一层结构,
我的问题是如何将其设为 TreeView ?

最佳答案

为此,您需要两个类 - 一个用于树状控件,另一个将数据提供给层次结构中的控件。

  • 对于控件,您可以使用类似 TreeView 的内容。 ,或者您可以通过继承 HierarchalDataBoundControl 来编写自己的代码.

  • 对于数据源,由于您有非常具体和自定义的数据格式,因此您需要编写一个实现 IHierarchalDataSource 的类。 。该类将成为控件的 DataSource,当您调用 DataBind 时,它将以分层方式向控件提供数据。

Here is a tutorial关于如何从头开始构建 HierarchalDataBoundControl。

另一种选择是只使用递归并且快速而肮脏地对待它。我回答了一个相关问题here .

关于asp.net - 如何使用自联接和项目表 "hierarchically structure"绑定(bind)asp.net控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/703613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com