none
percorrer varios CheckBox saber qual selecionado RRS feed

  • Pergunta

  • Pessoal!

    tenho vários CheckBox em uma pagina uns quinze para ser exato
    Gostaria de saber como faço para percorrer estes checkbox para
    saber qual esta selecionado, aqui no fórum só encontrei perguntas
    das pessoas que queriam saber como percorrer os checkbox dentro
    de um GRIDVIEW, não é o meu caso.
    tenho uma tabela com varios checkboxs e gostaria de saber qual
    esta selecionado para poder inserir o código dentro do meu BD



    Maricelmo


    • Editado Maricelmo quinta-feira, 22 de maio de 2014 17:30
    quinta-feira, 22 de maio de 2014 17:29

Todas as Respostas

  • Veja um exemplo fazendo isso em um clique de um botão :

    private void button1_Click(object sender, EventArgs e)
            {
                foreach (Control item in this.Controls)
                {
                    if (item is CheckBox)
                    {
                        CheckBox c = item as CheckBox;
    
                        if (c != null && c.Checked)
                        {
                            MessageBox.Show("MOSTRA NOME DA CHECKBOX SELCIONADA =" + c.Name);
                        }
                    }
                }
            }

    Ou uma outra maneira mais simples usando Lambda :

    foreach (CheckBox item in this.Controls.Cast<Control>().Where(c => c.GetType() == typeof(CheckBox)))
                {
                        if (item.Checked)
                        {
                            MessageBox.Show("MOSTRA NOME DA CHECKBOX SELCIONADA =" + item.Name);
                        }
                   
                }


    quinta-feira, 22 de maio de 2014 17:41
  • bom dia! Daniel

    Então fiz da forma que voce mostrou acima, porem não funcionou, fiz breakpoint e percebi que ele não
    entrou na expressão:

     if (item is CheckBox)

    esqueci de mencionar que meu projeto é Web

    Maricelmo

    sexta-feira, 23 de maio de 2014 12:09
  • Olá Maricelmo, na web ele não lê desta forma o GetType do controle pq provavelmente seus checkbox está diretamente no html, se possivel coloque em um Panel e veja como ficará simples :

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Panel ID="Panel1" runat="server">
                <asp:CheckBox ID="CheckBox1" runat="server" />
                <asp:CheckBox ID="CheckBox2" runat="server" />
                <asp:CheckBox ID="CheckBox3" runat="server" />
                <asp:CheckBox ID="CheckBox4" runat="server" />
                <asp:CheckBox ID="CheckBox5" runat="server" />
                <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    
            </asp:Panel>
    
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    
        </div>
        </form>
    </body>
    </html>

      Veja no code behind como é simples no clique do botão :

     public partial class WebFormMsdn : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                foreach (Control item in this.Panel1.Controls.OfType<CheckBox>().Where(i => i.Checked))
                {
                    Label1.Text += "ID da checkbox selecionada = " + item.ID;
                    Label1.Text += "--------";
                }           
    
            }
        }

      É uma idéia, espero que lhe ajude...

    • Sugerido como Resposta GuSouza terça-feira, 27 de maio de 2014 20:13
    sexta-feira, 23 de maio de 2014 12:47
  • bom dia! Daniel

    E obrigado por sua ajuda mas este Codigo não funcionou

    pois estou usando visual studio 2005, me desculpe por

    não ter mencionado antes

    fiz varias tentativas sem sucesso!


    Maricelmo


    • Editado Maricelmo sexta-feira, 23 de maio de 2014 13:28
    sexta-feira, 23 de maio de 2014 13:27
  • bom dia! Daniel

    E obrigado por sua ajuda mas este Codigo não funcionou

    pois estou usando visual studio 2005, me desculpe por

    não ter mencionado antes

    fiz varias tentativas sem sucesso!


    Maricelmo


     Qual Framework ?
    sexta-feira, 23 de maio de 2014 13:44
  • bom dia!
    Version=1.0.61025.0




    Maricelmo

    sexta-feira, 23 de maio de 2014 14:49
  • Bom dia!

    Alguém pode me ajudar,
    estou pesquisando e até
    agora não resolvi

    Maricelmo

    terça-feira, 27 de maio de 2014 14:48
  • Olá, não possuo o framework 1 neste momento mas seu code behind desse modo :

                foreach (Control item in this.Panel1.Controls)
                {
                    if (item is CheckBox)
                    {
                        CheckBox c = (CheckBox)item;
    
                        if (c.Checked)
                        {
                            string nome = c.ID;
                        }
                    }
                }

     E seu aspx assim :

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication4.WebForm1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Panel ID="Panel1" runat="server">
        
        
            <asp:CheckBox ID="CheckBox1" runat="server" />
                    <asp:CheckBox ID="CheckBox2" runat="server" />
                            <asp:CheckBox ID="CheckBox3" runat="server" />
            <asp:CheckBox ID="CheckBox5" runat="server" />
                                    <asp:CheckBox ID="CheckBox4" runat="server" />
    
                                        </asp:Panel>
    
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    
        </div>
        </form>
    </body>
    </html>
    

      Não funciona ?

    terça-feira, 27 de maio de 2014 19:59