【问题标题】:Creating a hierarchical dropdown list from a sharepoint list从共享点列表创建分层下拉列表
【发布时间】:2011-04-26 23:51:53
【问题描述】:

我正在尝试从以下形式的 SharePoint 列表中获取数据:
ID、Title、Parent_ID,以及其他一些无关紧要的东西。

1, GroupA, null  
2, GroupB, null  
3, GroupC, null  
4, ASubA, 1  
5, ASubB, 1  
6, BSubA, 2  
7, CSubA, 3  
8, CSubB, 3  
9, CSubC, 3

我想将它清晰地翻译成 web 部件上的下拉菜单,如下所示:

显示全部
A组
ASubA
ASubB
B组
BSubA
C组
CSubA
CSubB
CSubC

我可以将它与一些递归和一些 DataTable 合并一起使用,但是对于下一个出现的人来说,它会令人困惑并且更难以维护。我正在寻找一种顺利的方式来实现这一点。我觉得我应该能够在 CAML 查询中使用一些 GroupBy 来完成此操作,但我从事 SharePoint 的时间不长。

是否有一些分层数据结构我可以将其全部插入,然后按顺序将其拉回?还是一些我没有想到的查询语法?

提前致谢。

【问题讨论】:

  • 该列表实际上只需要深入两层,所以我最终只做了一个简单的 for 循环和一些 datatable.import 和 datatable.merge 来构造一个新的数据表以从我的数据访问对象返回.我只是想在查询语句中可以使用我已经拥有的数据来做这件事。

标签: c# .net sharepoint sharepoint-2007


【解决方案1】:

为什么不使用 Group_ID 而不是 Parent_ID:

1,A组,1
2、B组、2
3、C组、3
4、ASubA、1
5、ASubB、1
6、BSubA、2
7、CSubA、3
8、CSubB、3
9、CSubC、3

您现在可以在查询中按 Group_ID 排序。

或者,您可以使用两个列表,一个用于组,第二个用于带有查找列的 subs。

【讨论】:

  • 不想更改列表中的任何数据。不过你是对的,如果这是它最初的设计方式,这将是可行的。
【解决方案2】:

您使用的是哪个版本的 SharePoint?如果您使用的是 SharePoint 2010,而不是自己创建,我建议您使用 Managed Metadata

托管元数据是集中管理术语的分层集合,您可以定义这些术语,然后将其用作 Microsoft SharePoint Server 2010 中项目的属性。

【讨论】:

    【解决方案3】:

    另一个想法:合并第 3 列和第 1 列,并按结果值排序
    A 组,1
    亚苏亚,14
    ASubB, 15
    B组,2
    BSubA, 26
    C组,3
    CSubA, 37
    CSubB, 38
    CSubC, 39
    (数字按字母排序)

    当然,如果列表较长,则需要插入一些零。

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多