Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

La proprietà Attributes di un ListItem viene persa nel postback

Definiamo una pagina aspx con un controllo DropDownList al quale aggiungiamo un dei ListItem da codice.

Vogliamo creare i ListItem con un attributo per memorizzare una informazione che ci interessa:

ListItem item;

item = new ListItem("Valore 1", "V1");

item.Attributes.Add("MyCustomAttribute", "CUSTOM 1");

this.MyDropDownList.Items.Add(item);

item = new ListItem("Valore 2", "V2");

item.Attributes.Add("MyCustomAttribute", "CUSTOM 2");

this.MyDropDownList.Items.Add(item);

Mettiamo in esecuzione e ci accorgiamo che l'attributo viene perso al primo postback.

Sembra si tratti di un un baco o giù di lì, in quanto l'oggetto DropDownList non salva nel ViewState la collezione degli attributes dei ListItem contenuti.

 

L'alternativa potrebbe essere di ri-definire il proprio DropDownList che si preoccupi di salvere e poi rileggere quelle informazioni.

Ecco un paio di esempi/post di come fare:

http://weblogs.asp.net/fmarguerie/archive/2003/02/27/3103.aspx

http://aspnet.4guysfromrolla.com/articles/091405-1.aspx

 

Da quardare anche nella KB di Microsoft il suggerimento seguente:

http://support.microsoft.com/default.aspx?scid=kb;en-us;Q309338

Print | posted on lunedì 21 luglio 2008 03:38 | Filed Under [ ASP.NET 2.0 Tips .Net ]

Powered by:
Powered By Subtext Powered By ASP.NET