Vous devez enregistrer les valeurs de la Toolpart dans les propriétés du. WebPart Par exemple, disons que je veux sauver une chaîne pour « Titre » ... dans la webpart définir une propriété:
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; }
}
J'utilise toujours le préfixe « WPP » pour garder tous les w ebp art p ensemble.
Ensuite, dans la commande prioritaire de Toolpart ApplyChanges
, sauf la valeur de la commande (_ddlColumnsTitle) au webpart (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;
}
Enfin, si l'utilisateur a modifié les propriétés déjà, nous voulons que le Toolpart à pré -Populated avec la configuration de l'utilisateur. Dans la méthode CreateChildControls()
de votre Toolpart, initialiser les contrôles:
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();
}
}
Je l'ai déjà eu. Mais mon problème est quand j'applique, ou appuie sur ok, et que pour revenir au mode d'édition de mon webpart, toutes mes propriétés sont de retour par défaut ... Peut-être que je dois remplacer une fonction dans mon webpart quand je passe en mode d'édition? – RubenHerman
Erm - avez-vous encore le problème? La réponse est marquée comme correcte, donc pas sûr. – Ryan
@Ruben, Désolé oublié la partie sur l'initialisation de la partie outil avec les sélections précédentes de l'utilisateur. On dirait que vous avez réussi à le faire fonctionner de toute façon. J'ai mis à jour ma réponse pour l'exhaustivité. :) –