【发布时间】:2011-03-18 07:13:42
【问题描述】:
我创建了一个 SharePoint Web 部件,它具有用户可以配置的自定义属性。但是,这些仅适用于 Web 部件的该实例。我如何为用户提供一个允许用户设置适用于 Web 部件的每个实例的属性的位置?
(我是 SharePoint 开发的新手,我正在使用 WSPBuilder 创建具有功能的 Web 部件并进行部署。)
【问题讨论】:
标签: sharepoint web-parts
我创建了一个 SharePoint Web 部件,它具有用户可以配置的自定义属性。但是,这些仅适用于 Web 部件的该实例。我如何为用户提供一个允许用户设置适用于 Web 部件的每个实例的属性的位置?
(我是 SharePoint 开发的新手,我正在使用 WSPBuilder 创建具有功能的 Web 部件并进行部署。)
【问题讨论】:
标签: sharepoint web-parts
您可以使用 SPSite 的 RootWeb(或者,使其特定于 SPWeb,即当前的 SPWeb)的属性包来存储该 Web 部件(在该特定网站集中)的全局设置。创建一个 LAYOUTS 页面以允许在网站集范围内编辑这些设置,使用 RunWithElevatedPrivileges 将属性存储在 SPWeb 的属性包中。
【讨论】:
尝试静态成员,例如:
[WebBrowsable(false), Personalizable(PersonalizationScope.Shared)]
public string configSetting
{
get { return _configSetting; }
set { _configSetting = value; }
}
private static string _configSetting;
【讨论】:
自从我使用 SharePoint 以来已经有一段时间了...我会尝试的第一件事是创建一个列表,其记录是您要提供给 webpart 的参数,并对其进行配置,以便用户只能看到/修改自己的记录。
注意事项:如果您想让记录在新用户注册时动态显示,这可能会很棘手。而且,列表对于站点来说是“本地的”,因此您不能拥有从不同站点的部分中看到的单个列表。 (或者至少这是它在 SP 2007 中的工作方式)。
根据正确配置 Web 部件所需的参数数量,您还可以在用户配置文件中使用自定义“字段”,但这不是很可靠,可能会有点矫枉过正。
【讨论】: