1

我被要求做某事,我对 Sharepoint 开发和定制非常陌生,所以有点不确定如何去做,或者是否有可能。简介是创建一个显示当前站点的子站点列表的 Web 部件,我搞砸了,并创建了一个执行此操作的 Web 部件。

问题的第二部分是这个列表需要过滤,但它的当前活动状态以及它是什么类型的站点,这意味着我只想显示属于工作项目类型的活动项目。是否可以为共享点中的站点创建这样的属性,以及如何访问它们以执行某种形式的过滤,也许只是使用 foreach 循环或使用 LINQ,我只是对如何去做有点困惑这和我正在努力寻找任何真正具体的东西。

谢谢,

4

1 回答 1

1

这个有可能。和对象都有一个所谓的“财产袋” SPWebApplicationSPWeb这个属性包可以通过PropertiesAllProperties分别在提到的对象中访问。SPWebApplication是一个SPPersistedObject它继承属性包的地方。

您可以通过代码(以及通过 SPWeb 对象的 SharePoint Designer)将值存储在此属性包中。属性包应该只能由系统帐户访问,因此任何访问属性包的代码都应该被一个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。我通常将值存储在一个地方,那就是当前 SPSite 的 RootWeb。

于 2010-01-15T17:41:33.077 回答