Представление родительско-дочерних отношений в списках SharePoint - PullRequest
12 голосов
/ 20 ноября 2008

Мне нужно создать некоторые функции в нашем приложении SharePoint, которое заполняет список или списки некоторыми простыми иерархическими данными. Каждая родительская запись будет представлять «отправку», а каждая дочерняя запись будет «отправка». Существует отношение 1 к n между отправкой и отправкой. Это практично делать в SharePoint? Единственные типы отношений списков, которые я сделал до сих пор, - это столбцы поиска, но это выглядит немного иначе. Кроме того, как только такая связь между списками установлена, то каков наилучший способ создания представлений для данных такого типа. Я почти уверен, что было бы проще просто записать этот материал во внешнюю базу данных, но я бы хотел попробовать SharePoint, чтобы воспользоваться возможностями автоматического поиска.

Ответы [ 8 ]

7 голосов
/ 21 ноября 2008

Правильно Родитель / ребенок в Sharepoint практически невозможен без его самостоятельного развития. Здесь есть один подход: Имитация отношений между родителями и детьми в SharePoint 2007 с папками и типами содержимого

(Примечание. Это касается SharePoint 2007. В 2010 году Объединения значительно облегчили эту задачу )

3 голосов
/ 20 ноября 2008

Сделайте это в отдельной базе данных, создайте страницу (ы) с элементами управления, которые отображают данные, и запустите поиск по ним. Однако теряет немало функций SharePoint.

В противном случае может быть неплохо создать пользовательский элемент управления полем, который позволит вам искать данные в другом списке. Пользовательский элемент управления поля может быть тем, который «просматривает» связанные данные. Я знаю, что мы сделали это для родительских дочерних отношений между страницами в одном и том же списке. Не от 1 до N, хотя.

Трудный выбор в любом случае.

2 голосов
/ 10 июня 2009

Взгляните на SLAM, SharePoint List Association Manager, проект с открытым исходным кодом, который моя компания создала и активно поддерживает. SLAM позволяет синхронизировать данные SharePoint с SQL, включая любые связи между списками. SLAM, помимо того, что он очень полезен сам по себе, на самом деле является платформой, предназначенной для того, чтобы позволить разработчикам создавать свои собственные сложные ассоциации данных, используя то, что мы называем профилями типа SLAM. У нас есть один готовый профиль типа, который является частью проекта с открытым исходным кодом, который фактически позволяет сделать иерархический список SharePoint с использованием модели вложенного набора. Для получения дополнительной информации см. эту страницу на нашем сайте codeplex.

2 голосов
/ 18 апреля 2009

Мой голос - "записать этот материал во внешнюю базу данных"

Вам не хватает многих вещей в Sharepoint, таких как поддержка транзакций, ссылочная целостность, простой способ обновления (сравнение SQL), создание отчетов (с использованием служб Reporting Services и базы данных SQL) ... рассматривайте sharepoint как способ хранения документов и простые списки .....

Аргументом для Sharepoint является то, что это маленькое приложение, нет требований по поддержке транзакций, нет необходимости импортировать внешние данные и т. Д ...

Когда люди говорят, что Sharepoint является платформой разработки, необходимо определить, что, по их мнению, является платформой разработки.

Последние слухи о Sharepoint 2010 говорят нам о том, что в следующей версии будет поддержка списков на основе SQL-сервера ... которые, я думаю, по крайней мере будут перемещать Sharepoint в правильном направлении ....

0 голосов
/ 18 апреля 2009

Это легко сделать с помощью подключенной веб-части.

Создайте два списка:

Parent (Id, Title) Child (Id, Title, ParentId)

Создайте новую страницу sharepoint, добавьте DataFormWebPart (отображающий Parent) и еще одну для Child, установите для них обоих фильтр на основе параметра QueryString (используйте этот параметр для фильтрации Parent.Id и Child.ParentId), вуаля, вы может отображать родительско-дочерние отношения. Теперь добавить детей сложнее, и это та часть, которую я еще не разработал.

0 голосов
/ 26 ноября 2008

Одним из возможных способов является создание типа контента отправки на основе типа контента папки и элемента отправки на основе типа контента элемента. Затем вы можете хранить данные иерархически, как в файловой системе, а также работать с представлениями по умолчанию и функциями поиска.

Другой способ - создать поле поиска, которое указывает на тот же список (list = ”self”). Это поле будет использоваться как ссылка на родительский элемент, и вы получите список, содержащий рекурсивно связанные данные. Использовать эти данные программно будет нормально, но использование функциональности представлений будет немного сложным.

0 голосов
/ 21 ноября 2008

Другой подход, который вы можете использовать, это сохранение XML с полем в элементе. Этот подход используется в Podcasting Kit (в CodePlex) для хранения таких вещей, как рейтинги.

0 голосов
/ 20 ноября 2008

Я делаю это часто, просто используя sharepoint, используя инфраструктуру под названием AAA (Activity, Assignment, Artifact), которая позволяет вам использовать столбцы поиска, чтобы связать назначение или артефакт с родительским Activity. Затем вы создаете страницу веб-части с подключенными веб-частями, которые позволяют фильтровать все назначения и артефакты по действиям. Например, щелкните рядом с отправкой в ​​веб-части отправки, и отобразятся все элементы отправки, прикрепленные к этой отправке. Прекрасно работает.

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