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

posted @ giovedì 7 dicembre 2006 01:29

Print
Comments have been closed on this topic.
«dicembre»
domlunmarmergiovensab
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234