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:

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)
in alternativa posso anche usare

C#

Double.TryParse(strQuantita, NumberStyles.Any, ci, out quantita)
per permettere qualsiasi formato numerico.
Oppure:

C#

Double.TryParse(strQuantita, NumberStyles.Any ^ NumberStyles.AllowThousands, ci, out quantita)
per non permettere l'uso dei separatori delle migliaia.

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);
Tags:
ASP.NET54 C#237 SharePoint498 SharePoint 2007218 SharePoint 2010224
Potrebbe interessarti anche: