none
Contar CheckBox GridView com paginação RRS feed

  • Pergunta

  • Seguinte galera, já consigo manter o checkbox selecionado quando faço paginação, mas ainda estou passando por um problema, preciso contar a quantidade de checkbox selecionados no grid em sua totalidade, ex: o grid tem 30 itens divididos em 3 páginas, digamos que 3 estão selecionados na primeira página, 8 na segunda página e 5 na terceira, sei que tem um total de 16 itens selecionados, minha função só está contanto os itens da página em que se encontra, faço este somatório no evento OnCheckedChanged, porque preciso que ao atingir uma determinada quantidade o sistema avise ao usuário que atingiu o limite de itens selecionados. Coloquei um breakpoint e notei que só conta os itens da página em que o usuário esta no grid.

    segue o evento OnCheckedChanged:

    protected void chkUnirOnCheckedChanged(object sender, EventArgs e)
            {
                for (int i = 0; i < grdTubos.Rows.Count; i++)
                {
                    if (((CheckBox)grdTubos.Rows[i].Cells[6].FindControl("chkUnir")).Checked == true)
                    {
                        contCheck = contCheck + 1;
                    }
                }
                if (contCheck > 20)
                {
                    DataTable tbl = (DataTable)Session["dtSession"];
                    tbl.Clear();
                    Session["dtSession"] = tbl;
    
                    lblselecionarserno.Visible = false;
                    grdNovoTubo.DataSource = (DataTable)Session["dtSession"];
                    grdNovoTubo.DataBind();
                    grdNovoTubo.Visible = true;
                    uWeb.Mensagem(Page, "Favor Selecionar no máximo 20 itens!");
                }
    }

    Se alguém tiver alguma ideia de como resolver este problema, acredito que não seja muito complicado, mas não consegui achar nada na net ainda...

    Desenvolvendo em C#

    Abraço


    Marcos Paulo - Analista de Sistemas

    quarta-feira, 30 de outubro de 2013 18:50

Respostas

Todas as Respostas

  • Marcos se vai ter que buscar na sua base esse valor!!! Visto que o GridView trabalha dessa forma mesmo!

    Faça assim: busca o valor que esta selecionada e joga num ViewState

    Aqui tem um exemplo: http://www.codigofonte.net/dicas/dotnet/253_entendendo-o-que-e-viewstate de com utilizar isso!

    Ai todas as vezes que o cara clicar se atualizar esse dado no ViewState tanto adicionar ou para retirar!

    Eu usei e é simples fácil!


    Fúlvio Cezar Canducci Dias

    quarta-feira, 30 de outubro de 2013 23:47
  • e como eu faria no caso do usuário clicar em algum item que ele não queria utilizar e logo em seguida desmarcá-lo. Como faço para subtrair este item do View State?? na verdade eu deveria percorrer a página do Grid e contar a quantidade de itens marcados neh?

    Marcos Paulo - Analista de Sistemas

    quinta-feira, 31 de outubro de 2013 10:49
  • Então é simples! e foi isso que eu te disse!

    Se você tiver o valor dos dados não!

    Se não vai ter o valor inicial de quantos estão marcados???


    Fúlvio Cezar Canducci Dias

    quinta-feira, 31 de outubro de 2013 14:23