Alzi la mano chi non ha mai avuto la necessità di aggiungere su una web application la classica drop down list con l’elenco delle Nazioni.
La prima tentazione è quella di interrogare Google in cerca di un webservice pubblico che fornisca tale lista, possibilmente aggiornato. Tuttavia, non ne ho mai trovato uno free, completo e facilmente integrabile con un controllo DropDownList di ASP.NET. Anche la soluzione di trovare la lista già completa scritta a mano da qualcuno è poco affidabile e difficilmente manutenibile.
La soluzione c’è e ce la fornisce direttamente il Framework di .NET, ecco il codice corrispondente!
Dim ddl1 As DropDownList = LA NOSTRA DROPDOWNLIST
Dim sd1 As New SortedDictionary(Of String, String)
Dim ci1() As CultureInfo
ci1 = CultureInfo.GetCultures(CultureTypes.AllCultures)
For Each ci2 As System.Globalization.CultureInfo In ci1
Try
Dim ri1 As RegionInfo = New RegionInfo(ci2.LCID)
If Not sd1.ContainsKey(ri1.EnglishName) Then
sd1.Add(ri1.EnglishName, ri1.TwoLetterISORegionName)
End If
Catch ex As Exception
End Try
Next
For Each kvp1 As KeyValuePair(Of String, String) In sd1
Dim li1 As New ListItem
li1.Text = kvp1.Key
li1.Value = kvp1.Value
ddl1.Items.Add(li1)
Next
Si tratta sostanzialmente di iterare attraverso le culture messe già a disposizione del sistema. Da notare che l’oggetto RegionInfo contiene tutte le informazioni relative alla specifica cultura. Con lo stesso metodo possiamo quindi creare tendine per le monete, i sistemi metrici, ecc….
Davvero una grande facilitazione!