gpt4 book ai didi

c# - 嵌套 View 中的 3 级列表

转载 作者:太空狗 更新时间:2023-10-29 20:39:28 25 4
gpt4 key购买 nike

我有这些表 PagesPageVersionsElementsOnPageVersions

我想在一个页面上以可折叠的 View 一次显示它。

像这样:

  • 第 1 页

    • 版本 1
    • 版本 2
    • 版本 3
    • 版本 4
      • 元素 1
      • 元素 2
      • 元素 3
  • 第 2 页

    • 版本 1
    • 版本 2
    • 版本 3
    • 版本 4
      • 元素 1
      • 元素 2
  • 第 3 页

    • 版本 1
      • 元素 1
  • 第 4 页

    • 版本 1
      • 元素 1

我不确定检索数据并在折叠布局中轻松显示数据的最佳方式是什么。

我会做这样的事情:

  1. 一次获取所有项目。 "select * from ElementsOnPageVersion e inner join PageVersions v on e.PageVersion = v.id inner join Pages p on v.PageId = p.id"
  2. 遍历所有,并构建排序列表的层次结构,使其看起来像折叠布局。 PageLists[PagesObject],PagesObject 有一个经过排序的 PageVersionObjects 列表,它有一个经过排序的 ElementObjects 列表。
  3. 遍历最终的 PagesList 列表构建页面。在此迭代 pageversionslist 中显示页面的版本,并再次在每个版本中迭代 elementslist。

此时此刻,这就是我要做的方式。但它似乎太重了,而且迭代很多。

执行此操作的最佳方法是什么?

最佳答案

我会考虑将您的三个不同项目投影到一个自引用列表中。每个项目都需要一个 Id、Description 和 ParentId。我会为此制作一个 View 模型。

public class TreeItem {
public int Id {get; set;}
public string Description {get; set;}
public int ParentId {get; set;}
}

如果您使用的是 MVC,这将允许您利用网络表单中的 asp:TreeView 或任何风格的 jQuery 树/ TreeView 。

关于c# - 嵌套 View 中的 3 级列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20538481/

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