none
Cehckboxlist Urgente! Help... RRS feed

Respostas

  • Ramosnetprc segue um exemplo de como pode ser feito, fiz com Entity mas a lógica é praticamente a mesma basta adaptar de acordo com sua necessidade segue abaixo o code todo comentado...

    aspx:

    <!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:CheckBoxList ID="cblOpcao" runat="server">
                <asp:ListItem Value="1">Código</asp:ListItem>
                <asp:ListItem Value="2">Nome</asp:ListItem>
                <asp:ListItem Value="3">E-mail</asp:ListItem>
    
            </asp:CheckBoxList>
            <br />
            <asp:TextBox ID="txtPesquisa" runat="server"></asp:TextBox>
            <asp:Button ID="btnBuscar"
                runat="server" Text="Buscar" onclick="btnBuscar_Click" /><br />
            <asp:GridView ID="GvClientes" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:BoundField DataField="IdCliente" HeaderText="Código" />
                    <asp:BoundField DataField="Nome" HeaderText="Nome" />
                    <asp:BoundField DataField="Email" HeaderText="E-mail" />
                </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
    

    Cs:

    protected void Page_Load(object sender, EventArgs e)
            {
                //Se não for postback
                if (!Page.IsPostBack)
                {
                    //Carrego o grid com todas as opções
                    using (var ctx = new ExemploEntity())
                    {
                        GvClientes.DataSource = ctx.Cliente.OrderBy(X => X.Nome);
                        GvClientes.DataBind();
                    }
                }
            }
    
            //método privado que retorna um list de clientes
            //e recebe um inteiro como parâmetro
            //ou seja a opção de busca escolhida no checkboxlist
            //no meu caso o Value da opção
            private List<Cliente> ObterListaPesquisa(int opcao)
            {
                //string que recebe a texto da textbox de pesquisa
                var stringBusca = txtPesquisa.Text;
                //Aqui faço um switch com a opção passada no parâmetro
                //ou seja, o "Campo" que o usuário escolheu para realizar a busca
                switch (opcao)
                {
                    //se a opção escolhi for a 1 que no meu caso é o 
                    //Codido do cliente
                    case 1:
                        using (var ctx = new ExemploEntity())
                        {
                            //converto a opção e retorno um list com os dados da busca
                            //e assim pelo resto do codigo....
                            //se não encontrar nada retorno null
                            int codigo = Convert.ToInt32(stringBusca);
                            var lista = ctx.Cliente.Where(x => x.IdCliente == codigo).ToList();
                            return lista;
                        }
                        break;
                    case 2:
                        using (var ctx = new ExemploEntity())
                        {
                            var lista = ctx.Cliente.Where(x => x.Nome.Contains(stringBusca)).ToList();
                            return lista;
                        }
                        break;
                    case 3:
                        using (var ctx = new ExemploEntity())
                        {
                            var lista = ctx.Cliente.Where(x => x.Email.Contains(stringBusca)).ToList();
                            return lista;
                        }
                        break;
                    default:
                        return null;
                }
            }
    
            //Click do botão buscar
            protected void btnBuscar_Click(object sender, EventArgs e)
            {
                //seto a lista retornada pelo métoso como datasource 
                //do grid e chamo o método passando os valores necessários
                GvClientes.DataSource = ObterListaPesquisa(Convert.ToInt32(cblOpcao.SelectedValue));
                //bindo o grid...
                GvClientes.DataBind();
            }

    Resultado:

    Resultado obtido...

    Abraços e espero ter ajudado e lembrando que é um simples exemplos e deve ser melhorado/otimizado...


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    • Marcado como Resposta Harley Araujo quinta-feira, 3 de maio de 2012 18:24
    quinta-feira, 3 de maio de 2012 12:44

Todas as Respostas

  • Bom dia amigo, poderia definir melhor seu problema? Não consegui entender. :)

    Rodrigo Reis Ferreira
    Microsoft Certified

    segunda-feira, 30 de abril de 2012 11:52
  • Filtro de pesquisa usando checkboxlist, como faço ? 
    segunda-feira, 30 de abril de 2012 23:06
  • Filtro de pesquisa usando checkboxlist, como faço ? 
    Cara favor mostrar como vc está fazendo.

    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    quarta-feira, 2 de maio de 2012 12:15
    Moderador
  • Ramosnetprc segue um exemplo de como pode ser feito, fiz com Entity mas a lógica é praticamente a mesma basta adaptar de acordo com sua necessidade segue abaixo o code todo comentado...

    aspx:

    <!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:CheckBoxList ID="cblOpcao" runat="server">
                <asp:ListItem Value="1">Código</asp:ListItem>
                <asp:ListItem Value="2">Nome</asp:ListItem>
                <asp:ListItem Value="3">E-mail</asp:ListItem>
    
            </asp:CheckBoxList>
            <br />
            <asp:TextBox ID="txtPesquisa" runat="server"></asp:TextBox>
            <asp:Button ID="btnBuscar"
                runat="server" Text="Buscar" onclick="btnBuscar_Click" /><br />
            <asp:GridView ID="GvClientes" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:BoundField DataField="IdCliente" HeaderText="Código" />
                    <asp:BoundField DataField="Nome" HeaderText="Nome" />
                    <asp:BoundField DataField="Email" HeaderText="E-mail" />
                </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
    

    Cs:

    protected void Page_Load(object sender, EventArgs e)
            {
                //Se não for postback
                if (!Page.IsPostBack)
                {
                    //Carrego o grid com todas as opções
                    using (var ctx = new ExemploEntity())
                    {
                        GvClientes.DataSource = ctx.Cliente.OrderBy(X => X.Nome);
                        GvClientes.DataBind();
                    }
                }
            }
    
            //método privado que retorna um list de clientes
            //e recebe um inteiro como parâmetro
            //ou seja a opção de busca escolhida no checkboxlist
            //no meu caso o Value da opção
            private List<Cliente> ObterListaPesquisa(int opcao)
            {
                //string que recebe a texto da textbox de pesquisa
                var stringBusca = txtPesquisa.Text;
                //Aqui faço um switch com a opção passada no parâmetro
                //ou seja, o "Campo" que o usuário escolheu para realizar a busca
                switch (opcao)
                {
                    //se a opção escolhi for a 1 que no meu caso é o 
                    //Codido do cliente
                    case 1:
                        using (var ctx = new ExemploEntity())
                        {
                            //converto a opção e retorno um list com os dados da busca
                            //e assim pelo resto do codigo....
                            //se não encontrar nada retorno null
                            int codigo = Convert.ToInt32(stringBusca);
                            var lista = ctx.Cliente.Where(x => x.IdCliente == codigo).ToList();
                            return lista;
                        }
                        break;
                    case 2:
                        using (var ctx = new ExemploEntity())
                        {
                            var lista = ctx.Cliente.Where(x => x.Nome.Contains(stringBusca)).ToList();
                            return lista;
                        }
                        break;
                    case 3:
                        using (var ctx = new ExemploEntity())
                        {
                            var lista = ctx.Cliente.Where(x => x.Email.Contains(stringBusca)).ToList();
                            return lista;
                        }
                        break;
                    default:
                        return null;
                }
            }
    
            //Click do botão buscar
            protected void btnBuscar_Click(object sender, EventArgs e)
            {
                //seto a lista retornada pelo métoso como datasource 
                //do grid e chamo o método passando os valores necessários
                GvClientes.DataSource = ObterListaPesquisa(Convert.ToInt32(cblOpcao.SelectedValue));
                //bindo o grid...
                GvClientes.DataBind();
            }

    Resultado:

    Resultado obtido...

    Abraços e espero ter ajudado e lembrando que é um simples exemplos e deve ser melhorado/otimizado...


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    • Marcado como Resposta Harley Araujo quinta-feira, 3 de maio de 2012 18:24
    quinta-feira, 3 de maio de 2012 12:44
  • Olá Pablo estou testando, muitoo Obrigado. abraços.

    sexta-feira, 4 de maio de 2012 19:25