Come si gestiscono WebPart personalizzato tipo di proprietà di aggiornamento durante riassegnazione

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/12643

Domanda

Ho un webpart personalizzato che è stata definita con una proprietà come

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

, che è stato distribuito. Ho poi cambiato in:

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

Questo cambiamento ora causa un errore che suggerisce DataSeries1 non è stato trovato. Come posso gestire l'aggiornamento per questo scenario? FWIW, il seguente IVersioningPersonalizable non sembra funzionare:

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;
    }
}

Grazie!

È stato utile?

Soluzione

Il tuo codice IVersioningPersonalizable guarda a destra, ma penso di SharePoint determina proprietà sconosciute con il loro nome, e se la proprietà non è stata ribattezzata - non sarà sconosciuto ...

Quindi, la prego di proprietà YSeriesType rinomina e provare a eseguire di nuovo l'aggiornamento?

Altri suggerimenti

Il messaggio di errore si riferisce alla classe DataSeries1, che viene utilizzato dal webpart esistente. Quindi, sto cercando di indovinare che è stato eliminato (o rinominato) questa classe.

Dopo aver eseguito il codice che aggiorna i valori delle proprietà, allora si può rimuovere in modo sicuro la classe DataSeries1.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top