2011-04-26 96 views
0

我试图从以下格式的SharePoint列表中获取数据:
ID,Title,Parent_ID以及其他不重要的东西。从SharePoint列表创建分层下拉列表

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

我可以与一些递归和一些数据表合并在一起抛出这个,但它会引起混乱对于下一个出现的人来说更难保持。我正在寻找完成此操作的顺利方法。我觉得我应该可以通过CAML查询中的某些GroupBy来完成此任务,但是我没有做SharePoint太久。

有没有一些分层的数据结构,我可以坚持这一切,然后再把它拉回来?或者我没有想到的一些查询语法?

在此先感谢。

+0

该列表实际上只需要执行两次深入的操作,所以我最终只做了一个简单的for循环和一些datatable.import和datatable.merge来构造一个新的数据表,以便从我的数据访问对象中返回。我只是想知道在查询语句中有一些方法可以用我已有的数据来完成它。 – Craig 2011-04-28 11:59:35

回答

0

取而代之的是PARENT_ID的,你为什么不使用GROUP_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排序。或者,您可以使用两个列表,一个用于组,第二个用于查找列的子列表。

+0

不想更改列表中的任何数据。你是对的,如果这是它最初设计的原理,那么这是有效的。 – Craig 2011-04-28 11:58:14

0

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

托管元数据是,你可以定义集中管理的术语的分层集合,然后为在Microsoft SharePoint项属性使用Server 2010。

+0

我正在运行2007年 – Craig 2011-04-28 11:58:47

0

另一个想法:合并列3和1,以及排序所得到的值
组A,1
ASubA,14
ASubB,15
组B,2
BSubA,26
C组, 3
CSubA,37
CSubB,38
CSubC,39
(按字母顺序排序的数字)

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