Question

J'ai une webPart avec plusieurs propriétés faisant partie d'une partie d'outil personnalisée.Lorsque je définirai les propriétés, je voudrais que le WebPart reflète les modifications de la propriété tout en modifiant après avoir cliqué sur Appliquer / OK, mais la page est toujours en mode édition (je suppose que dans les changements d'applications de ma partie d'outil personnalisée).Des idées?

tia

Était-ce utile?

La solution

Cela dépend purement de l'endroit où dans le cycle de vie de la partie Web, vous utilisez les propriétés.

Si vous utilisez les valeurs tôt avant que «Toolpane» ne reçoivent l'événement cliqué pour Apply / OK, ce qui entraîne l'application de vos pièces d'outils pour déclencher et modifier les propriétés, puis les modifications ne s'affichent pas jusqu'à la charge de pageload.

Si vous utilisez les valeurs tardives (après l'événement cliqué), le changement apparaîtra "immédiatement".

Dans ma partie Web avancée ci-dessous Les modifications apportées à TestCCC ne figureront pas avant le prochain pageload, car j'appelle EnsurechildControls à Pageload, ce que l'ajout de la littéralContrôle avant l'événement cliqué.Les modifications apportées à TESTRC qui se montreront immédiatement parce qu'elle est rendue en retard.

public class TestEditWP : WebPart
{
    [Personalizable(PersonalizationScope.Shared)]
    [WebBrowsable(true)]
    public string TestCCC { get; set; }

    [Personalizable(PersonalizationScope.Shared)]
    [WebBrowsable(true)]
    public string TestRC { get; set; }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        EnsureChildControls();
    }
    protected override void CreateChildControls()
    {
        Controls.Add(new LiteralControl(TestCCC));
    }

    protected override void RenderContents(HtmlTextWriter writer)
    {
        base.RenderContents(writer);
        writer.Write("{0}", TestRC);
    }
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top