gpt4 book ai didi

c# - Sharepoint WebPart 属性在重新部署后丢失

转载 作者:行者123 更新时间:2023-11-30 16:19:37 25 4
gpt4 key购买 nike

我有一个使用某些 Web 部件属性(在本例中为字符串)的 Sharepoint 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);
}

此外,在 webpart 的 ascx.cs 文件中,我必须将其添加到类定义的正下方:

public MyWebPart WebPart { get; set; }

最后,我能够使用以下方法访问 OnPreRender 事件的值:

this.WebPart.Exclusions

有关详细信息,请参阅此站点:NothingButSharepoint.com

关于c# - Sharepoint WebPart 属性在重新部署后丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15069656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com