Добавление пользовательских свойств на сайт, которые доступны через код - PullRequest
1 голос
/ 13 января 2010

Меня попросили что-то сделать, и я очень новичок в разработке и настройке Sharepoint, поэтому немного не уверен, как это сделать, или, если это вообще возможно. Задача состоит в том, чтобы создать веб-часть, которая показывает список подузлов текущего сайта, я разбирался и создал веб-часть, которая делает это.

Вторая часть проблемы заключается в том, что этот список необходимо фильтровать, но его текущее активное состояние, а также тип сайта, который означает, что я хочу показывать только активные проекты, относящиеся к типу рабочих проектов. Можно ли создать подобные свойства для сайта в sharepoint, и как я могу получить к ним доступ для выполнения какой-либо формы фильтрации, возможно, просто используя цикл foreach или LINQ, я просто немного озадачен тем, как я могу это сделать это и я изо всех сил пытаюсь найти что-то действительно конкретное в этом.

Спасибо

Rob

1 Ответ

1 голос
/ 15 января 2010

Это возможно. Объекты SPWebApplication и SPWeb имеют так называемую «сумку свойств». Это свойство мешок доступно через Properties и AllProperties соответственно в указанных объектах. SPWebApplication - это SPPersistedObject, от которого он наследует пакет свойств.

Вы можете хранить значения в этом наборе свойств через код (и через SharePoint Designer для объекта SPWeb). Пакет свойств должен быть доступен только системной учетной записи, поэтому любой код доступа к пакету свойств должен быть окружен блоком SPSecurity.RunWithElevatedPrivileges:

SPSecurity.RunWithElevatedPrivileges(delegate {
  // value can be any object, 
  // but I recommend sticking to primitive types like string, int etc. only
  SPContext.Current.Site.RootWeb.Properties[key] = value;
  SPContext.Current.Site.RootWeb.AllProperties[key] = value;
  SPContext.Current.Site.RootWeb.Update();
  SPContext.Current.Site.RootWeb.Properties.Update();
});

Объект SPWeb имеет свойство aProperties и свойство AllProperties. Как видите, я обновляю оба пакета свойств, вы можете прочитать, почему в этой более углубленной статье о пакете свойств здесь .

приписка

Я упомяну только SPWebApplication и здесь для полноты, вам следует придерживаться SPWeb. Обычно я храню значения в одном месте, и это RootWeb текущего SPSite.

...