none
Erro ao percorrer gridview com checkbox RRS feed

  • Pergunta

  • Olá galera. Tenho uma GridView para venda de produtos com um checkBox para o usuário selecionar o produto e um TextBox para digitar a qtde de produtos desejados. Fiz um for para percorrer a GridView e pegar somente os valores onde a checkbox foi selecionada, porém o laço percorre toda a Grid e pega somente  valor da primeira checkBox selecionada. Se houver mais de uma checkbox selecionada, ele ignora. Já pedi ajuda aqui ajuda aqui e eles me ajudaram demais, porém só agora descobri esse erro. Segue abaixo meu código, se alguém puder ajudar, ficarei grato.

    for (int i = 0; i < gvProdutos.Rows.Count; i++)
                {
                    CheckBox ckSel = (CheckBox)gvProdutos.Rows[i].Cells[1].FindControl("ckSel");
                    if (ckSel.Checked)
                    {
                        ItensVenda iv = new ItensVenda
                        {
                            Produto = int.Parse((gvProdutos.Rows[i].Cells[0].Text)),
                            Quantidade = int.Parse(((TextBox)gvProdutos.Rows[i].Cells[4].FindControl("tbQt")).Text),
                            Valor = Convert.ToDecimal(gvProdutos.Rows[i].Cells[2].Text)
                        };
                        valor = Convert.ToDouble(gvProdutos.Rows[i].Cells[2].Text);
                        qtde = ((TextBox)gvProdutos.Rows[i].Cells[4].FindControl("tbQt")).Text;
                        subtotal = subtotal + valor * int.Parse(qtde);
                        itens.Add(iv);
    
                        Produto p = new Produto();
                        estoque = Convert.ToInt32(gvProdutos.Rows[i].Cells[3].Text);
                        estoque_atual = estoque - int.Parse(qtde);
                        int resultEst = p.AtualizarEstoque(estoque_atual, int.Parse((gvProdutos.Rows[i].Cells[0].Text)));
                        gvProdutos.DataBind();
                    }
                }
                desconto = Convert.ToInt32(tbDesconto.Text);
                subtotal = subtotal - desconto;
                total = subtotal;


    Edinho

    • Movido João_ Prado quarta-feira, 12 de junho de 2013 20:52 Webforms Gridview
    terça-feira, 11 de junho de 2013 23:08

Todas as Respostas

  • Você postou sua dúvida no forum de MVC.

    Antonio Cardoso S. Júnior - MCP, Partner Network Blog - http://devnetbr.wordpress.com/

    quarta-feira, 12 de junho de 2013 14:32
  • Dando um UP pra ve se aparece alguém pra ajudar.

    Att, Felipo Gonçalves | Microsoft Contingent Staff

    sexta-feira, 14 de junho de 2013 17:42
  • Cara se entendi você quer encontrar seu 1 Checkbox checado correto e assim parar a rotina...

    La vai :

     foreach (GridViewRow item in nomeseugrid.Rows)
                {
     CheckBox check = (CheckBox)item.FindControl("nomeseucheckbox");
    
       if (check.Checked)
                    {                   
                       //aqui voce pega todos os dados que nescessita sacou
                    }

    Isso funciona perfeitamente...

    Se for util marque como resposta ou util...

    sexta-feira, 14 de junho de 2013 18:45