Parse di una stringa con numeri in una WebPart
Se ho una WebPart di SharePoint che accetta in input dei valori numerici inseriti come stringhe in una textbox, l'ideale è "parsare" questi valori in accordo con le impostazioni internazionali del sito corrente.
Per far questo bisogna usare la proprietà Locale dell'oggetto SPWeb che ritorna un oggetto System.Globalization.CultureInfo e poi le funzioni Parse o TryParse di .NET.
Ecco un esempio:
in alternativa posso anche usare
per permettere qualsiasi formato numerico.
Oppure:
per non permettere l'uso dei separatori delle migliaia.
Stesso discorso se voglio visualizzare i dati numerici in accordo ai RegionalSettings:
Per far questo bisogna usare la proprietà Locale dell'oggetto SPWeb che ritorna un oggetto System.Globalization.CultureInfo e poi le funzioni Parse o TryParse di .NET.
Ecco un esempio:
C#
// recupero i regional setting del sito corrente
System.Globalization.CultureInfo ci = SPContext.Current.Web.Locale;
// una text box dell'applicazione
string strQuantita = txt.Text
double quantita = 0.0;
//converto la stringa che rappresenta il numero decimale / float con possibilità di avere i separatori delle migliaia
Double.TryParse(strQuantita, NumberStyles.Float | NumberStyles.AllowThousands, ci, out quantita)
C#
Double.TryParse(strQuantita, NumberStyles.Any, ci, out quantita)
Oppure:
C#
Double.TryParse(strQuantita, NumberStyles.Any ^ NumberStyles.AllowThousands, ci, out quantita)
Stesso discorso se voglio visualizzare i dati numerici in accordo ai RegionalSettings:
C#
System.Globalization.CultureInfo ci = SPContext.Current.Web.Locale;
double quantita = 1277.01;
string strQuantita = quantita.ToString(ci);