我正在尝试将自定义属性添加到我的webpart中,如下所示:
[Personalizable(PersonalizationScope.Shared)]
[WebBrowsable(true)]
[System.ComponentModel.Category("Settings")]
[WebDisplayName("RSS List Path")]
[WebDescription("")]
public string RSSListURL
{
get
{
if (_myListURL == null)
{
_myListURL = "http://server2003dev/dev/";
}
return _myListURL;
}
set { _myListURL = value; }
}
但是在webpart中我还使用我自己的自定义工具部件覆盖GetToolParts()方法,如下所示:
public override ToolPart [] GetToolParts() {
return new ToolPart[] { new RSSCountrySettings(), new WebPartToolPart() };
}
我需要在 catergory设置下显示我的自定义工具部分(RSSCountrySettings)和我的自定义属性(RSS列表路径)。
任何想法我是如何做到的,我只能得到一个但不能同时显示......?
答案 0 :(得分:0)
您没有使用基类的工具部分。试试这个:
public override ToolPart[] GetToolParts()
{
var result = new List<ToolPart>() ;
var toolparts = base.GetToolParts();
result.AddRange(toolparts.ToList());
result.Add(new WebPartToolPart());
return result.ToArray();
}
您需要执行此操作的原因是基类为您的自定义属性生成工具部件。但是,您不允许它将该工具部件添加到toolpart集合中。因此,您必须将基类的工具部分作为集合,然后在那里添加您的工具。这是覆盖现有方法的危险。查看this link以获取更多信息
答案 1 :(得分:0)
您必须将CustomPropertyToolPart添加到toolParts列表。像这样:
public override Microsoft.SharePoint.WebPartPages.ToolPart[] GetToolParts()
{
List<ToolPart> list = new List<ToolPart>();
list.AddRange(base.GetToolParts());
// adds custom controls
result.Add(new WebPartToolPart());
// adds default controls for properties marked with [WebBrowsable(true)]
list.Add(new CustomPropertyToolPart());
return list.ToArray();
}