【问题标题】:Can a Sharepoint 2010 WebPart property be configured as user-specific only?能否将 Sharepoint 2010 WebPart 属性配置为仅用户特定?
【发布时间】:2017-05-09 23:55:06
【问题描述】:

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

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

换句话说,我希望我的 Web 部件有一个属性,该属性以空白开头,并在用户在 Web 部件中执行操作后分配一个值,但该值特定于该用户。查看该页面的其他用户将需要执行该操作以获得他们自己的价值。我希望在用户不必手动个性化页面的情况下实现这一点。

我尝试设置属性:

Personalizable( PersonalizationScope.User )

后来添加的

WebPartStorage( Storage.Personal )

并做了一些测试,但第一个用户设置的值总是持续到第二个。

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

【问题讨论】:

    标签: c# sharepoint-2010 .net-3.5


    【解决方案1】:

    您应该可以添加属性[Personalizable(true)]

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

    在此处查看 Microsoft 的演练文章:Creating a Custom Web Part Editor in SharePoint 2010

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

    [...]

    // 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 文档:About Web Part Page personal and shared views

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

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

    • 通常可以查看和修改 LayoutAppearance 常用 Web 部件属性,但不能查看和修改高级属性。在某些情况下,Web 部件的开发人员可能决定不显示部分或全部常用属性,或者您可能无权查看它们。
    • 可以查看和修改自定义 Web 部件属性。在某些情况下,Web 部件的开发人员可能决定不显示部分或全部自定义属性,或者您可能无权查看它们。
    • 可以查看和修改,但不能删除具有适当权限的共享 Web 部件。但是,一旦您修改了共享的 Web 部件,它就会变成个性化的 Web 部件。
    • 可以查看和修改但不能删除个性化 Web 部件。这些 Web 部件的修改后的属性值仅适用于您。
    • 可以查看、修改和删除私有 Web 部件。这些 Web 部件仅适用于您,其他用户无法看到它们,即使在共享视图中也是如此。

    默认情况下,在个人视图中编辑页面时,仅为当前用户自定义布局和外观属性。除非您明确使它们可个性化,否则自定义属性是共享的。

    【讨论】:

    • 这非常有帮助,谢谢。您的第二个链接基本上回答了我的问题:“当 Web 部件页面处于共享视图中时,您......无法查看或修改您自己或其他用户的个性化 Web 部件。”你的第一个链接给了我更多关于如何完成我想要的想法。再次感谢!
    猜你喜欢
    • 2011-04-06
    • 2015-08-12
    • 2011-08-24
    • 2011-10-30
    • 2011-07-31
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    相关资源
    最近更新 更多