Asp.Net il controllo checkbox

Alcuni interessanti trucchietti sul controllo checkboxlist di Asp.Net.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Introduzione

Il controllo checkboxlist, è un controllo simile al controllo Listbox, solo con la differenza che presenta per ogni elemento, un casella di selezione ossia una ckeckbox.
Il controllo può tornare utile, nel caso si ha la necessità di visualizzare un elenco di voci con selezione multipla, evitando in questo modo un inserimento massiccio dei controlli Checkbox.

Stesura del codice – caricamento dei dati

Supponiamo di caricare il controllo checkbolist con i dati riguardante alcune città, nell’evento load della pagina, si crea un oggetto di tipo datatable, valorizzando con dei dati a piacere

DataTable dttDati = new DataTable();
        DataColumn dtcCitta = new  DataColumn("Citta");
        DataColumn dtcCodice   = new  DataColumn("Codice");
        dttDati.Columns.Add(dtcCitta);
        dttDati.Columns.Add(dtcCodice);
 
        DataRow dtrRiga ;
        dtrRiga = dttDati.NewRow();
        dtrRiga["Citta"] = "Roma";
        dtrRiga["Codice"] = "RM";
        dttDati.Rows.Add(dtrRiga);
        dtrRiga = dttDati.NewRow();
        dtrRiga["Citta"] = "Milano";
        dtrRiga["Codice"] = "MI";
        dttDati.Rows.Add(dtrRiga);
        dtrRiga = dttDati.NewRow();
        dtrRiga["Citta"] = "Bologna";
        dtrRiga["Codice"] = "BO";
        dttDati.Rows.Add(dtrRiga);
        dtrRiga = dttDati.NewRow();
        dtrRiga["Citta"] = "Palmero";
        dtrRiga["Codice"] = "PA";
        dttDati.Rows.Add(dtrRiga);
        dtrRiga = dttDati.NewRow();
        dtrRiga["Citta"]= "Catania";
        dtrRiga["Codice"] = "CT";
        dttDati.Rows.Add(dtrRiga);
        dtrRiga = dttDati.NewRow();
        dtrRiga["Citta"] = "Reggio Calabria";
        dtrRiga["Codice"] = "RC";
        dttDati.Rows.Add(dtrRiga);
        CheckBoxList1.DataSource = dttDati;
        CheckBoxList1.DataTextField = "Citta";
        CheckBoxList1.DataValueField = "Codice";
        CheckBoxList1.DataBind();

Visualizzare gli elementi su più colonne

Tramite la proprietà RepeatColums possiamo impostare la visualizzazione degli elementi in più colonne
Si riporta il frammento del codice html relative alla proprietà RepeatColumns

        <asp:CheckBoxList ID="CheckBoxList1"  RepeatColumns="3"  runat="server">
        </asp:CheckBoxList>

Utilizzo di Linq

Con linq, possiamo in maniera molto semplice e rapida selezionare alcuni elementi del controllo checkbolist.
Qui di seguito si riporta il frammento di codice

string[] parametro = { "RM", "CT", "RC" };
            (from i in CheckBoxList1.Items.Cast<ListItem>() where parametro.Contains(i.Value) select i).ToList().ForEach(i => i.Selected = true);

 

Conclusioni

L’utilizzo del controllo checkboxlist, può tornare utile in diversi contesti, tramite linq, inoltre si possono fare tante interessanti operazioni.