Controllo server Web CheckBoxList

Crea un gruppo di caselle di controllo a selezione multipla. Il controllo supporta l'associazione a un'origine dati.

<asp:CheckBoxList id="CheckBoxList1"
     AutoPostBack="True|False"
     CellPadding="Pixels"
     DataSource='<% databindingexpression %>'
     DataTextField="DataSourceField"
     DataValueField="DataSourceField"
     RepeatColumns="ColumnCount"
     RepeatDirection="Vertical|Horizontal"
     RepeatLayout="Flow|Table"
     TextAlign="Right|Left"
     OnSelectedIndexChanged="OnSelectedIndexChangedMethod"
     runat="server">

   <asp:ListItem value="value" 
        selected="True|False">
      Text
   </asp:ListItem>

</asp:CheckBoxList>

Osservazioni

Il controllo CheckBoxList crea un gruppo di caselle di controllo a selezione multipla che può essere generato in modo dinamico tramite l'associazione dati. Per specificare gli elementi che si desidera visualizzare nel controllo CheckBoxList, inserire un elemento ListItem per ogni voce tra i tag di apertura e di chiusura del controllo CheckBoxList.

Nota   È anche possibile utilizzare più controlli CheckBox. Con il controllo CheckBoxList la creazione di un insieme di caselle di controllo mediante l'associazione dati risulta più semplice; il singolo controllo CheckBox consente invece un maggiore controllo sul layout.

Anche il controllo CheckBoxList supporta l'associazione dati. Per associare il controllo a un'origine dati, è in primo luogo necessario creare un'origine dati, ad esempio un oggetto System.Collections.ArrayList, che contenga gli elementi da visualizzare nel controllo. Quindi utilizzare il metodo Control.DataBind per associare l'origine dati al controllo CheckBoxList. Utilizzare le proprietà DataTextField e DataValueField per specificare quale campo dell'origine dati deve essere associato rispettivamente alle proprietà Text e Value di ogni voce dell'elenco nel controllo. Il controllo CheckBoxList visualizzerà le informazioni dall'origine dati.

Per determinare gli elementi selezionati nel controllo CheckBoxList, scorrere l'insieme Items ed eseguire un test della proprietà Selected di ogni elemento dell'insieme.

Utilizzando le proprietà RepeatLayout e RepeatDirection, è possibile specificare il modo in cui l'elenco viene visualizzato. Se la proprietà RepeatLayout è impostata su RepeatLayout.Table (impostazione predefinita), il rendering dell'elenco sarà eseguito all'interno di una tabella. Se è impostata su RepeatLayout.Flow, il rendering dell'elenco sarà eseguito senza strutture tabellari. Per impostazione predefinita, RepeatDirection è impostata su RepeatDirection.Vertical. Se si imposta questa proprietà su RepeatDirection.Horizontal, il rendering dell'elenco viene eseguito orizzontalmente.

Attenzione   Il testo non viene codificato in formato HTML prima di essere visualizzato nel controllo CheckBoxList. È pertanto possibile incorporare script all'interno dei tag HTML presenti nel testo. Se i valori del controllo provengono dall'input dell'utente, assicurarsi di convalidare tali valori per evitare problemi di protezione.

Per informazioni dettagliate sulle proprietà e sugli eventi del controllo server Web CheckBoxList,vedere la documentazione di Classe CheckBoxList.

Esempio

Nell'esempio seguente viene mostrata una dichiarazione di un controllo CheckBoxList in un file aspx. Nell'elenco sono presenti sei elementi che non si escludono a vicenda. Quando un utente seleziona una delle caselle, la pagina non viene immediatamente inviata al server. La pagina viene inviata solo quando si verifica un altro evento, ad esempio quando viene fatto clic su un controllo Button. Non viene richiamato alcun gestore eventi OnSelectedIndexChanged perché non è stato dichiarato alcun metodo per l'evento.

<asp:CheckBoxList id="Check1"
     RepeatLayout="flow"
     runat="server">

   <asp:ListItem>Item 1</asp:ListItem>
   <asp:ListItem>Item 2</asp:ListItem>
   <asp:ListItem>Item 3</asp:ListItem>
   <asp:ListItem>Item 4</asp:ListItem>
   <asp:ListItem>Item 5</asp:ListItem>
   <asp:ListItem>Item 6</asp:ListItem>

</asp:CheckBoxList>

Nell'esempio seguente viene mostrato come determinare le caselle di controllo selezionate in un controllo CheckBoxList. Il codice consente di scorrere l'insieme Items del controllo e di eseguire il test della proprietà Selected di ogni elemento. Gli elementi selezionati vengono quindi visualizzati nel controllo Label.

Sub Button1_OnClick(sender As Object, e As EventArgs)
   Dim s As String
   Dim i As Integer
   s = "Selected items:<br>"
   For i=0 to Check1.Items.Count - 1
      If Check1.Items(i).Selected Then
         s = s & Check1.Items[i].Text & "<br>"
      End If 
   Next i
   Label1.Text = s
End Sub
[C#]
void Button1_OnClick(Object sender, EventArgs e)
{
   string s;
   s = "Selected items:<br>";
   for (int i=0; i < Check1.Items.Count; i++)
   {
      if ( Check1.Items[i].Selected )
      {
         s = s + Check1.Items[i].Text + "<br>";
      }
   }
   Label1.Text = s;
}

Vedere anche

Controlli server Web | Classe CheckBoxList