Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示数据库中的分层数据?_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 显示数据库中的分层数据?

C# 显示数据库中的分层数据?,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在处理一个项目的前端,任务是显示数据库中按层次结构组织的一些数据。我还没有处理过这类数据类型,我的第一个选择是gridview,它只显示“父级”,下面没有任何数据。我在谷歌上搜索了几个选项,但大多数选项看起来像是使用ADO.NET或Linq来查询数据库,而我需要一个用实体框架实现的后端选项。我的后端开发人员已设置此方法以返回资产数据: public List<AssetEntity> GetAllAssets() { List<AssetEntity> get

我正在处理一个项目的前端,任务是显示数据库中按层次结构组织的一些数据。我还没有处理过这类数据类型,我的第一个选择是gridview,它只显示“父级”,下面没有任何数据。我在谷歌上搜索了几个选项,但大多数选项看起来像是使用ADO.NET或Linq来查询数据库,而我需要一个用实体框架实现的后端选项。我的后端开发人员已设置此方法以返回资产数据:

public List<AssetEntity> GetAllAssets()
{
    List<AssetEntity> getAllAssets = dal.SelectAsset(1);
    Error = dal.Error;
    return getAllAssets;
}
public List GetAllAssets()
{
List getAllAssets=dal.SelectAsset(1);
误差=dal.误差;
返回所有资产;
}

treeview听起来是我最好的选择,但我不确定使用EF控制什么或如何实现这一点。有什么线索吗?谢谢

在html中显示树可以通过嵌套无序列表来完成:

<ul class="tree">
    <li><div>Item 1</div></li>
    <li><div>Item 2</div></li>
    <li><div>Item 3</div>
        <ul>
            <li><div>Item 3.1</div></li>
            <li><div>Item 3.2</div>
                 <ul>
                    <li><div>Item 3.2.1</div></li>
                    <li><div>Item 3.2.2</div></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
和jQuery以在单击时展开/折叠子节点:

$(function(){
    $(".tree li div").click(function()
        {
            var children = $(this).parent("li").children("ul");
            if(children.length > 0)
            {
                if(children.is(":visible"))
                {
                   children.hide();
                }
                else
                {
                   children.show();
                }
            }   
        });
});
全样本:

可以在razor中为每个Assetenty列表使用局部视图或显示模板来呈现列表。通过在每个Assetenty中使用相同的PartialView迭代子集合,您将得到递归,使其成为树

剃刀:

@model IEnumerable<AssetEntity>

<ul>
@foreach (var item in Model)
{
       <li>@item.Name
          @Html.DisplayFor(m => item.Children)
       </li>
}
</ul>
@model IEnumerable
    @foreach(模型中的var项目) {
  • @项目名称 @DisplayFor(m=>item.Children)
  • }

我已经添加了一些css和jQuery来完成这个示例。有没有不使用razor的方法?恐怕我还没有赶上这个速度。我一直在使用standalone.aspx页面来显示。不过,我还是要试一试。只要我们还在谈论mvc而不是webforms,PartialView或DisplayTemplates的想法就不会改变。无论如何,我鼓励您尝试一下razor viewengine。这就像“放一个@符号,然后做一些c#…”。我从以下引用开始:Edit:我使用webforms后端开发人员使用EF。我只是用basic C#和webform controlsOk浏览表单,我被你问题上的mvc标签误导了;-)。但我很确定在webforms中也有类似的解决方案。
@model IEnumerable<AssetEntity>

<ul>
@foreach (var item in Model)
{
       <li>@item.Name
          @Html.DisplayFor(m => item.Children)
       </li>
}
</ul>