ASP.NET DropDownList Tips: Elenco mesi

Lascia un commento

Spesso capita di dover presentare la possibilità di scegliere un mese dell’anno. Possiamo farlo tramite un Calendario o anche semplicemente tramite una ComboBox.
Ma se il nostro sito è multilingua? Come facciamo a presentare i nomi dei mesi nella lingua giusta?

Il classico (e sbagliato) approccio dei dodici listitem dichiarati esplicitamente, che siano nella pagina ASPX, che siano nel codeBehind, non ci permette di essere “dinamici” rispetto alla lingua utilizzata nel contesto.

<asp:DropDownList ID="ddlMesi" runat="server">
    <asp:ListItem Text="Gennaio" Value="1" />
    <asp:ListItem Text="Febbraio" Value="2" />
    <!-- ... -->
    <asp:ListItem Text="Novembre" Value="11" />
    <asp:ListItem Text="Dicembre" Value="12" />
</asp:DropDownList>

Questo esempio ci fa notare che la visualizzazione dei dati è troppo legata alla scelta dello sviluppatore, e implementa l’esigenza solo per un caso singolo.

Per essere elastici e creare la medesima lista a runtime, e crearla nella lingua utilizzata nel contesto, ecco un piccolo snippet da usare nel codeBehind per una DropDownList vuota:

if (this.ddlMesi.Items.Count <= 1)
    for (int i = 1; i <= 12; i++)
    {
        ddlMesi.Items.Add(new ListItem(
            System.Globalization.DateTimeFormatInfo.CurrentInfo.GetMonthName(i),
            i.ToString()
        ));
    }

Buona visione….

Annunci

C# Tips – Using delegate in List.Find() predicate

Lascia un commento

Se avessimo sotto mano un linguaggio funzionale (ad esempio ), potremmo gestire in maniera facilissima una collection o una lista.
Con il Framework , possiamo lavorare ugualmente in maniera più funzionale con i (Approfondimento). Utilizzando questa feature del possiamo elaborare i nostri dati in maniera molto più immediata, specialmente grazie ai (anonymous delegates).

Un esempio che voglio riportare, ed è anche il più frequente che mi è capitato di sviluppare, è l’utilizzo di questi delegate per la funzione di ricerca di una lista generica ()

Altro

%d blogger hanno fatto clic su Mi Piace per questo: