Вам нужно сохранить значения из Toolpart в свойствах WebPart в. Например, позволяет сказать, что я хочу сохранить строку для «Title» ... в WebPart определить свойство:
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», чтобы сохранить все ш Е.Б. р art p roperties вместе.
Затем в ApplyChanges
переопределении в Toolpart, в сохранении значения элемента управления (_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;
}
Наконец, если пользователь редактировал свойство уже, мы хотим Toolpart быть предварительно -попущенная с конфигурацией пользователя. В 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();
}
}
У меня это уже есть. Но моя проблема заключается в том, когда я применяю или нажимаю ok, а затем возвращаюсь в режим редактирования моего веб-сайта, все мои свойства возвращаются по умолчанию ... Может быть, мне нужно переопределить функцию в моей веб-части, когда я перейду в режим редактирования? – RubenHerman
Erm - у вас все еще есть проблема? Ответ помечен как правильный, поэтому не уверен. – Ryan
@Ruben, Извините, забыл о инициализации Toolpart с предыдущими выборами пользователя. Похоже, вы смогли заставить его работать в любом случае. Я обновил свой ответ для полноты. :) –