L'arte di lavorare con le WebPart - un piccolo Poll

Mi piacerebbe sapere, e lo chiedo in particolare a chi legge il mio blog, se i post finora pubblicati (5) della miniserie in oggetto sono di qualche utilità per qualcuno e se qualcuno ha interesse che compaiano, tempo permettendo, post relativi a subtopic particolari riguardanti la stesse serie. Mi farebbe piacere ricevere feedback in proposito, anche in privato (soprattutto se negativi ).

Vi ringrazio.

powered by IMHO 1.3

L'arte di lavorare con le WebPart - #5

Con l'attributo [Personalizable] dichiariamo ad ASP.NET di voler persistere nello storage di default il valore di una property da noi creata all'interno della web part. E fin qui nulla da dire.

Peccato però che la property, se non contiene un semplice valore bensì un dato più complesso (collections o riferimenti a oggetti business) e questo viene modificato durante il ciclo di vita dell'applicazione - e quindi anche della web part - l'attributo [Personalizable] non è più sufficiente per persistere tale valore.

Occorre quindi utilizzare il metodo SetPersonalizationDirty()

quindi, una cosa di questo tipo:

public class EditorWebPart : WebPart
{
    
private BaseEditor _editor;
    
    [Personalizable]
    
public BaseEditor Editor
    {
        
get return _editor; }
        
set { _editor = value; }
    }    
}

essendo Editor una property complessa, perchè ha come tipo BaseEditor, non si potrà persistere il suo stato (modificato) in questo modo:

EditorWebPart.Editor.Title = this.TitleText.Text;
EditorWebPart.Editor.Content = 
this.ContentText.Text;

poichè il meccanismo di personalization di ASP.NET non sarà in grado di accorgersi da solo che la property Editor è cambiata, quindi:

EditorWebPart.Editor.Title = this.TitleText.Text;
EditorWebPart.Editor.Content = 
this.ContentText.Text;
this.SetPersonalizationDirty();

aggiungendo, alla fine delle modifiche, il SetPersonalizationDirty() diremo ad ASP.NET di persistere lo stato nascosto della property.

 

powered by IMHO 1.3

«dicembre»
domlunmarmergiovensab
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456