Вам необходимо сохранить значения из Панели инструментов в свойствах веб-части.Например, допустим, я хочу сохранить строку для «Заголовка» ... в веб-части определить свойство:
private const string DEFAULT_WPPColumnTitle = "Title";
private string _WPPColumnTitle = DEFAULT_WPPColumnTitle;
[Browsable(false)]
[WebPartStorage(Storage.Shared)]
public string WPPColumnTitle
{
get { return this._WPPColumnTitle; }
set { this._WPPColumnTitle = value; }
}
Я всегда использую префикс «WPP», чтобы сохранить все w eb p art p вместе.
Затем в переопределении ApplyChanges
панели инструментов сохраните значение элемента управления (_ddlColumnsTitle) в веб-части (WPPColumnTitle):
/// <summary>
/// Called by the tool pane to apply property changes to
/// the selected Web Part.
/// </summary>
public override void ApplyChanges()
{
// get our webpart and set it's properties
MyCustomWebPart et = (MyCustomWebPart)ParentToolPane.SelectedWebPart;
et.WPPColumnTitle = _ddlColumnsTitle.SelectedValue;
}
Наконец, если пользователь уже отредактировал свойства, мы хотим, чтобы часть инструментов была предварительно заполнена конфигурацией пользователя.В методе CreateChildControls()
вашего Toolpart инициализируйте элементы управления:
protected override void CreateChildControls()
{
try
{
MyCustomWebPart et = (MyCustomWebPart)ParentToolPane.SelectedWebPart;
// ... code to create _ddlColumnsTitle and add it to the Controls
// default our dropdown to the user's selection
ListItem currentItem = _ddlColumnsTitle.Items.FindByValue(et.WPPColumnTitle);
if (null != currentItem)
{
_ddlColumnsTitle.SelectedValue = currentItem.Value;
}
}
catch (Exception ex)
{
_errorMessage = "Error adding edit controls. " + ex.ToString();
}
}