Создание иерархического выпадающего списка из списка sharepoint - PullRequest
0 голосов
/ 27 апреля 2011

Я пытаюсь взять данные из списка SharePoint, который имеет форму:
ID, название, 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

Я хочу перевести это чисто в раскрывающемся списке веб-части, которая будет выглядеть следующим образом:

Показать все
GroupA
ASubA
ASubB
GroupB
BSubA
GroupC
CSubA
CSubB
CSubC

Я могу бросить это вместе с некоторой рекурсией и некоторым слиянием DataTable, но это будет запутанным и более трудным для обслуживания следующего человека, который придет. Я ищу плавный способ сделать это. Я чувствую, что смогу достичь этого с помощью некоторого GroupBy в CAML-запросе, но я не слишком долго занимался SharePoint.

Есть ли какая-то иерархическая структура данных, в которую я мог бы вставить все это, а затем вытащить ее обратно по порядку? Или какой-то синтаксис запроса, о котором я не думаю?

Спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 27 апреля 2011

Какую версию SharePoint вы используете? Если вы используете SharePoint 2010 вместо того, чтобы создавать свой собственный, я бы рекомендовал использовать Управляемые метаданные :

Управляемые метаданные - это иерархическая коллекция централизованно управляемых терминов, которые можно определять, а затем использовать в качестве атрибутов для элементов в Microsoft SharePoint Server 2010.

0 голосов
/ 28 апреля 2011

Другая идея: объединить столбцы 3 и 1 и отсортировать по полученному значению
Группа А, 1
ASubA, 14
ASubB, 15
GroupB, 2
BSubA, 26
GroupC, 3
CSubA, 37
CSubB, 38
CSubC, 39
(Алфавитная сортировка по номерам)

Конечно, вам нужно вставить несколько нулей, если у вас более длинный список.

0 голосов
/ 27 апреля 2011

Вместо Parent_ID, почему бы вам не использовать Group_ID:

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

. Вы можететеперь сортируйте по Group_ID в вашем запросе.

В качестве альтернативы, вы можете использовать два списка, один для групп, а второй для подпрограмм с поисковым столбцом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...