por Cesar Cassiano Schimanco

Checkbox dentro de um repeater (ASP.NET / C#)

Neste exemplo vou mostrar como pegar o checkbox selecionado dentro de um repeater.
Para pegar o valor de um checkbox selecionado dentro de um repeater, eu usei um HiddenField.
No HiddenField coloquei o ID, e no checkbox o Text, veja o exemplo.

Default.aspx

<div>
    <asp:Repeater runat="server" ID="Repeater1">
        <ItemTemplate>
            <div>
                <asp:HiddenField ID="HiddenField1" Value='<%# ((ListItem)Container.DataItem).Value %>' runat="server" />
                <asp:CheckBox ID="CheckBox1" Text='<%# ((ListItem)Container.DataItem).Text %>' runat="server" />
            </div>
        </ItemTemplate>
    </asp:Repeater>
    <asp:Button ID="btnSave" Text="Salvar" runat="server" onclick="btnSave_Click" />
</div>

Default.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    //Carregar o Repeater apenas quando a página não for PostBack
    //Para não perder os valores selecionado do repeater
    if (!Page.IsPostBack)
    {
        //Criando uma lista simples para popular o repeater
        List<ListItem> exemplo = new List<ListItem>() {
            new ListItem("item 1","1"),
            new ListItem("item 2","2"),
            new ListItem("item 3","3"),
            new ListItem("item 4","4")
        };

        //Definindo a lista como DataSource do repeater
        Repeater1.DataSource = exemplo;
        Repeater1.DataBind();
    }
}

protected void btnSave_Click(object sender, EventArgs e)
{
    //Pegar todos os itens do repeater
    for (int i = 0; i < Repeater1.Items.Count; i++)
    {
        //Pegando o HiddenField dentro do repeater
        HiddenField HiddenField1 = (HiddenField)Repeater1.Items[i].FindControl("HiddenField1");

        //Pegando o CheckBox dentro do repeater
        CheckBox CheckBox1 = (CheckBox)Repeater1.Items[i].FindControl("CheckBox1");

        //Verificar se foi selecionado
        if (CheckBox1.Checked)
        {
            //Pegar o Value e o Text dos itens selecionados do repeater
            Response.Write("Value:" + HiddenField1.Value + " Text:" + CheckBox1.Text + "<br />");
        }
    }
}

 

Comentários

Carregando comentários

Postar um novo comentário



Processando...