Вы захотите создать пользовательскую панель инструментов.Вот руководство: http://sharepoint -insight.blogspot.com / 2008/10 / sharepoint-creation-web-part-with.html
В основном в вашем коде WebPart вам понадобитсяпереопределить функцию GetToolParts и вернуть ToolPart[]
Измените ваш конструктор инструментальной части так, чтобы он принимал объект SPWeb
(передайте ему объект SPContext.Current.Web
из вашей веб-части).Чтобы получить список списков, в вашей части инструментов вам нужно создать выпадающий список внутри вашего метода CreateChildControls()
.Используя объект SPWeb, полученный от Конструктора, вы можете использовать для каждого из них, чтобы получить все списки для текущего сайта.
Итак, в вашей веб-части сделайте следующее:
public override ToolPart[] GetToolParts()
{
ToolPart[] tps = new ToolPart[3];
WebPartToolPart wptp = new WebPartToolPart();
CustomPropertyToolPart cptp = new CustomPropertyToolPart();
tps(0) = cptp;
tps(1) = wptp;
tps(2) = new ListSelectionToolPart(SPContext.Current.Web, "List Settings");
return tps;
}
private string _TargetListGUID;
[Personalizable(PersonalizationScope.Shared)]
[WebBrowsable(false)]
[WebDisplayName("Target List GUID")]
[WebDescription("GUID of the Target List")]
[SPWebCategoryName("Internal")]
public string TargetListGUID {
get { return _TargetListGUID; }
set { _TargetListGUID = value; }
}
ДобавьтеКласс, подобный следующему:
public class ListSelectionToolPart : WebPartPages.ToolPart
{
private SPWeb _web;
protected DropDownList ddlLists;
public New(SPWeb Web, string ToolTitle)
{
_web = System.Web;
this.Title = ToolTitle;
}
protected override void CreateChildControls()
{
Literal litLists = new Literal { Text = "<b>List:</b><br />" };
ddlLists = new DropDownList {
AutoPostBack = true,
ID = "ddlLists"
};
ddlLists.Style.Add("width", "100%");
foreach (SPList list in _web.Lists)
{
ddlLists.Items.Add(new ListItem(list.Title, list.ID.ToString()));
}
this.Controls.Add(litLists);
this.Controls.Add(ddlLists);
}
public override void ApplyChanges()
{
(this.ParentToolPane.SelectedWebPart as MyWebPart).TargetListGUID = ddlLists.SelectedValue;
}
}
Приведенный выше код предполагает, что именем вашей WebPart является MyWebPart и что существует свойство TargetListGUID.Чтобы добавить выбор сайта, вы можете сделать то же самое в разделе инструментов (добавить еще один выпадающий список).Если вы используете событие SelectionChanged, вы можете использовать его для заполнения раскрывающегося списка.