.NET

21 abr, 2010

Usando Checkbox no repeater

Publicidade

Requisitos

Para desenvolver essa aplicação será necessário:

  • Visual Studio 2005 ou compatível
  • Framework 2.0

1º Adicione um Repeater no formulário

2º Vá no modo Source para editar o template do arquivo

3º Adicione o componente checkbox

O código deverá estar parecido com isso

        <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
                <asp:CheckBox runat="server"></asp:CheckBox>
        </ItemTemplate>
        </asp:Repeater>

4º Adicionar DataSource ao Repeater

Nesse caso eu vou criar uma coleção de String e popular com um laço e instanciar o valor do DataSource do Repeater1 com a lista. No método Page_Load coloque o seguinte código.

        if (!Page.IsPostBack)
        {
            List<String> lista = new List<string>();

            for (int i = 0; i < 10; i++)
                lista.Add(i.ToString());

            Repeater1.DataSource = lista;

            Repeater1.DataBind();
        }

5º Colocando Eval no Repeater

Agora coloque o valor da lista que você irá visualizar no Repeater
Container.DataItem
Ficará da seguinte forma

        <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" Text='<%# Container.DataItem %>'></asp:CheckBox>
            </ItemTemplate>
        </asp:Repeater>

6º Imprimindo o resultado

Adicione um Label e um Button, no evento Click do botão adicione o seguinte código. Isso servirá para exibir quais checkbox estão checados.

        Label1.Text = String.Empty;

        foreach (RepeaterItem item in Repeater1.Items)
            if (((CheckBox)item.Controls[1]).Checked)
                Label1.Text = ((CheckBox)item.Controls[1]).Text + "<br />";

Bem simples, isso aqui é para quem realmente está iniciando, apenas uma maneira de usar controles dentro de um Repeater, poderia ser qualquer outro controle, a idéia é saber utilizar controles dentro de um repeater.
Espero que tenha sido útil, até a próxima.