Continuiamo la nostra serie di extension methods da utilizzare per facilitarci il lavoro nello sviluppo web con il framework asp.net webforms. Oggi vediamo il codice, peraltro molto semplice, per selezionare diversi valori di una checkboxlist:

public static void SetSelectedValues(this CheckBoxList ckl, IEnumerable<string> selectedValues)
{
    if (ckl == null)
        throw new NullReferenceException("ckl is null");
 
    foreach (ListItem item in ckl.Items)
        item.Selected = selectedValues.Contains(item.Value);
}

La proprietà "Value" di un item di una checkboxlist è una stringa, per questo motivo il nostro metodo prende in ingresso un IEnumerable<string> che contiene tutti i valori che vogliamo selezionare. Dopo aver controllato che la checkboxlist non sia null possiamo passare a selezionare gli elementi opportuni.

Di fatto questo metodo deseleziona i valori che non sono contenuti in "selectedValues" se invece vogliamo selezionare i valori in aggiunta a quelli che sono già selezionati dobbiamo modificare il codice in questo modo:
public static void SetSelectedValues(this CheckBoxList ckl, IEnumerable<string> selectedValues)
{
    if (ckl == null)
        throw new NullReferenceException("ckl is null");
 
    foreach (ListItem item in ckl.Items)
        if (selectedValues.Contains(item.Value))
            item.Selected = true;
}
comments powered by Disqus