是否可以将 SharePoint 2010 WebPart 属性配置为仅特定于用户?



背景:我使用具有自定义属性的Visual Studio开发了几个SharePoint 2010 Web部件。 我还能够使用代码设置这些属性,以便它们持久存在。 我还知道SharePoint用户可以使用自己的属性值等个性化页面和Web部件。

问题: 是否可以设置始终仅特定于用户的属性?

换句话说,我希望我的 Web 部件具有一个属性,该属性开始时为空,并在用户在 Web 部件中执行操作后分配一个值,但该值特定于该用户。 查看该页面的其他用户需要执行该操作才能获得自己的值。 我希望这种情况无需用户手动个性化页面即可发生。

我尝试设置属性:

Personalizable( PersonalizationScope.User )

后来添加

WebPartStorage( Storage.Personal )

并做了一些测试,但第一个用户设置的值始终保留到第二个用户。

我们在个性化方面做得不多,所以我真的很好奇这是否可能。

您应该能够添加一个属性[Personalizable(true)]

WebPartStorage属性(带Storage.SharedStorage.Personal)是 SharePoint 2003 旧 API 的保留,如此处所述。

在此处查看Microsoft的演练文章:在 SharePoint 2010 中创建自定义 Web 部件编辑器

Web 部件将私有变量_tabList声明为TabData对象的集合。此集合通过TabList属性包装。如果 null,则该属性返回空集合_tabList。该属性还标记为"可个性化",以使用户能够自定义选项卡。

[...]

// Collection of tabs.
private List<TabData> _tabList;
// Property to hold the collection of tabs.
// Set the Personalizable attribute to true, 
// to allow for personalization of tabs by users.
[Personalizable(true)]
public List<TabData> TabList { 
get
{
if (this._tabList == null)
{
// Return an empty collection if null.
this._tabList = new List<TabData>();
}
return this._tabList;
}            
set
{
this._tabList = value;
} 
}   

有关更多阅读内容,请在此处查看Microsoft的文档:关于 Web 部件页个人视图和共享视图

值得注意的是,请考虑以下摘录:

当 Web 部件页处于个人页面视图中时,您可以:

  • 通常可以查看和修改">布局"和"外观"常见 Web 部件属性,但不能查看和修改"高级"属性。在某些情况下,Web 部件的开发人员可能决定不显示某些或全部公共属性,或者您可能没有查看这些属性的权限。
  • 可以查看和修改自定义 Web 部件属性。在某些情况下,Web 部件的开发人员可能决定不显示部分或全部自定义属性,或者您可能没有查看这些属性的权限。
  • 可以使用适当的权限查看和修改(但不能删除)共享 Web 部件。但是,修改共享 Web 部件后,它将成为个性化的 Web 部件。
  • 可以查看和修改(但不能删除)个性化 Web 部件。这些 Web 部件的修改属性值仅适用于您。
  • 可以查看、修改和删除私有 Web 部件。这些 Web 部件仅适用于您,其他用户无法看到它们,即使在共享视图中也是如此。

默认情况下,在个人视图中编辑页面时,仅针对当前用户自定义"布局"和"外观"属性。自定义属性是共享的,除非您显式使其可个性化。

最新更新