Sharepoint Web部件属性在重新部署后丢失
本文关键字:部署 新部署 Web 属性 Sharepoint | 更新日期: 2023-09-27 18:00:54
我有一个共享点Web部件,它使用了一些Web部件属性(本例中为字符串(。这些属性都能正常工作,但我想说的是,我对我们的Web部件进行了更改并部署到服务器上,现有的属性就丢失了。
经过阅读,我相信这可能与我的财产定义有关:
public static string Exclusions;
[Category("Extended Settings"),
Personalizable(PersonalizationScope.Shared),
WebBrowsable(true),
WebDisplayName("Library Exclusions"),
WebDescription("Enter any Libraries to exclude. Use '|' to separate.")]
public string _Exclusions
{
get { return Exclusions; }
set
{ Exclusions = value;}
}
我想知道我是否应该删除这里的"静态"。然而,当我去这样做时,我不能再像以前那样使用这个属性:
protected override void OnPreRender(EventArgs e)
{
((HiddenField)this.FindControl("DocumentLibraryListingHiddenWebPartProperties")).Value = DocumentLibraryListing.DocumentLibraryListing.Exclusions;
}
有什么建议吗?
事实证明,丢失的设置/属性与静态字符串有关。
我将我的财产更改为:
public string Exclusions;
[Category("Extended Settings"),
Personalizable(PersonalizationScope.Shared),
WebBrowsable(true),
WebDisplayName("Library Exclusions"),
WebDescription("Enter any Libraries to exclude. Use '|' to separate.")]
public string _Exclusions
{
get { return Exclusions; }
set
{ Exclusions = value;}
}
此外,我必须在CreateChildControls方法中执行以下操作:
protected override void CreateChildControls()
{
Control control = Page.LoadControl(_ascxPath);
if (control!= null)
{
((MyUserControl)control).WebPart = this;
}
Controls.Add(control);
}
此外,在Web部件的ascx.cs文件中,我不得不将其添加到类定义的正下方:
public MyWebPart WebPart { get; set; }
最后,我能够使用访问OnPreRender事件上的值
this.WebPart.Exclusions
有关更多信息,请访问此网站:NothingButSharepoint.com