martedì 16 maggio 2006 #

ASP.NET 2.0 - FormView template e campi numerici

Mi sono imbattuto in un BUG o sono io a non capire?

Sto lavorando su una pagina ASP.NET 2.0 e utilizzo FormView ed i relativi Template per l'editing (ITEM, INSERT e UPDATE), connesso ad un ObjectDataSource.
Nel template per INSERT e UPDATE ho inserito dei TextBox per inserire dei valori numerici con virgola (double), ed il tutto deve funzionare in ambito della localizzazione "it-IT". L'applicazione dovrà essere accessibile su client configurati con SO in inglese, quindi per essere sicuro ho dovuto mettere nel file Web.config la stringa di configurazione <globalization uiCulture="it" culture="it-IT" />. Tutto sembra funzionare bene se inserisco dei campi TextBox per l'inserimento dei valori numerici nella pagina, cioè sono eseguite correttamente le conversioni dei valori decimali (problema del separatore decimale).

Nei controlli TextBox nel FormView invece tutto ciò è ignorato, e quando cerco di scrivere un valore numerico con virgola nel controllo relativo e bindato con il data source, l'applicazione mi  ritorna una eccezione di errato formato di conversione. Infatti se inserisco un valore decimale del tipo "1,5", la virgola non è un carattere valido per le impostazioni inglesi e quindi l'errore di conversione. Questo succede solo in input e non in output, cioè il valore decimale è correttamente visualizzato quando letto dal datasource e poi esposto sul controllo TextBox.

Credo quindi che il problema sia un BUG del controllo, cioè nell'automatismo di conversione sono ignorati i formati localizzati impostati dall'applicazione, ma sono presi da altre impostazioni del sistema operativo (i miei client PC hanno WinXP in inglese). Forse mi sbalgio?

Comunque esiste un rimedio: gestire ad esempio nell'evento FormView.ItemUpdating e "forzare" la conversione. Non mi piace molto, anzi per nulla... ma non ho trovato altri rimedi.

Spero anche che qualcuno di voi legga questo post e possa avere altre informazioni e maggiore esperienza per darmi altri suggerimenti. Grazie.

 

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (47)