Question

J'ai un webpart personnalisé qui a été définie par une propriété comme

[Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Chart Type"), Category("Chart - Required")]
[InitializationParameterName("ySeriesType")]
public DataSeries1 YSeriesType { get; set; }

qui a été déployée. J'ai ensuite changé à:

[Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Chart Type"), Category("Chart - Required")]
[InitializationParameterName("ySeriesType")]
public YSeriesType YSeriesType { get; set; }

Ce changement provoque maintenant une erreur suggérant DataSeries1 n'a pas été trouvé. Comment puis-je gérer la mise à niveau pour ce scénario? FWIW, la IVersioningPersonalizable suivante ne semble pas fonctionner:

void IVersioningPersonalizable.Load(IDictionary unknownProperties)
{
    if (unknownProperties == null)
        return;

    _dirty = true;

    foreach (DictionaryEntry entry in unknownProperties)
    {
        switch (Convert.ToString(entry.Key))
        {
            case "YSeriesType":
                this.YSeriesType = (YSeriesType)Enum.Parse(typeof(YSeriesType), Convert.ToString(entry.Value));
                break;
        }
    }
}

protected override void OnInit(EventArgs e)
{
    if (_dirty && null != base.WebPartManager)
    {
        SetPersonalizationDirty();
        _dirty = false;
    }
}

Merci!

Était-ce utile?

La solution

Votre code IVersioningPersonalizable semble bon, mais je pense que SharePoint détermine les propriétés inconnues par leur nom, et si la propriété n'a pas été renommé - il ne sera pas inconnu ...

Alors, pourriez-vous bien renommage de YSeriesType et essayez d'effectuer la mise à niveau?

Autres conseils

Le message d'erreur fait référence à la classe DataSeries1, qui est utilisé par le webpart existant. Donc, je suppose que vous avez supprimé (ou renommé) cette classe.

Après l'exécution du code qui met à jour les valeurs de propriété, vous pouvez supprimer en toute sécurité votre classe DataSeries1.

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