Фиксирую лог своих разборок с SharePoint Напомню, одной из моих задач была разработка иерархического списка.
Один из опробованных вариантов решения – создание типа данных, унаследованного от Folder. Подробный туториал по построению иерархического списка на основе такого подхода можно найти тут:
Этот подход как-то работает. И, учитывая предусловия, заданные автором этого туториала (обойтись без написания программного кода и без использования SharePoint Designer), решение неплохое. Но меня оно не совсем устроила. При этом у меня есть и лицензионный SharePoint Designer, и против программного кода ничего не имею. Поэтому идем дальше
Можно разработать Web User Control (ascx), отображающий данные в нужном нам виде. Это несложно. Вот тут описаны способы подключения web user controls к сайту SharePoint:
http://sharepointinsight.blogspot.com/2007/07/web-user-controls-in-sharepoint.html
http://jcapka.blogspot.com/2009/01/i-was-explaining-my-technique-of-using.html
А здесь довольно подробно о том, как программно доступаться к элементам списков:
http://www.sharepointdevwiki.com/display/public/Accessing+list+items+using+the+object+model
Еще один вариант, лучше чем web user controls в отношении повторного использования и удобства встраивания в сайт – создание WebPart. Ставим SDK, после этого в Visual Studio появляется кучка новых типов проектов в группе SharePoint.
Обратите внимание, что для того, чтобы создать новый проект для SharePoint необходимо, чтобы на машине был установлен SharePoint. А для его установки нужна серверная ОС. У меня на компьютере установлен Windows 7. Другая проблема, которая может возникнуть – это то, что имея Visual Studio 2010 будет проблематично делать решения для SharePoint 2007. Обе этих проблемы решаемы. Здесь подробный туториал:
Создать проект без установленного SharePoint нельзя, но открывать уже существующие можно без проблем. Поэтому нужно просто иметь под рукой готовый пустой проект SharePoint. Такой проект можно найти в приложении к вышеуказанной статье. Чтобы проект был годен для SharePoint 2007 – удаляем из референсов проекта ссылки на библиотеки SharePoint версии 14 и добавляем референсы на библиотеки версии 12, которые можно взять из GAC на сервере, где установлен SharePoint 2007. Проверял, работает
Visual Studio автоматически собирает solution package (wsp), который можно разворачивать на SharePoint’е. Далее закидываем этот package на сервер и разворачиваем с помощью утилиты stsadm. Как это делать можно почитать тут:
http://www.sharepointnutsandbolts.com/2007/07/building-and-deploying-sharepoint.html
Вот этим путём я и пошел. Позже мне добрые люди подсказали ссылку на готовый WebPart для иерархических списков:
http://dyakov.design.officelive.com/hieviewwp.aspx
Возможно этот вариант будет лучше, чем писать с нуля.
Написал этот пост по большей части чтобы ссылки не потерять и зафиксировать опыт. Но возможно кому-то будет полезно
–
Павел Сурменок