none
Selecionando apenas 1 checkbox no grid RRS feed

  • Pergunta

  • Galera esstou com um problema, utilizo no meu grid um checkbox pra selecionar um determinado registo. Só que ele me permite selecionar mais de um registro. Eu quero que não sejá permitido selecionar mais de 1 checkbox. Alguem tem alguma ideia?

    O codigo que eu uso pra selecionar o registo.

    protected void cbxSelecionar_CheckedChanged(object sender, EventArgs e)
        {
          foreach (GridViewRow row in gdwListarProblemas.Rows)
          {
            CheckBox ch = (CheckBox)row.FindControl("cbxSelecionar");
    
            if (ch != null)
            {
              if (ch.Checked)
              {
                txtNomeProblema.Text = row.Cells[2].Text;
    
                objProblema._problemaID = Convert.ToInt32(row.Cells[1].Text);
    
                objProblema = objProblemaBO.selectProblema(Convert.ToInt32(row.Cells[1].Text));
    
                preencherFormulario();
              }
            }
          }
        }
    

     }
                }
            }

    quinta-feira, 14 de outubro de 2010 19:38

Respostas

  • Vc pode converter a coluna com o CheckBox num TemplateField e usar um RadioButton no lugar
    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    There is no place like 127.0.0.1
    Só existem 10 tipos de pessoas no mundo... as que leem em binario e as outras...
    Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    • Marcado como Resposta Edson Mugrave II sexta-feira, 15 de outubro de 2010 15:28
    quinta-feira, 14 de outubro de 2010 20:57
    Moderador

Todas as Respostas

  • Vc pode converter a coluna com o CheckBox num TemplateField e usar um RadioButton no lugar
    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    There is no place like 127.0.0.1
    Só existem 10 tipos de pessoas no mundo... as que leem em binario e as outras...
    Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    • Marcado como Resposta Edson Mugrave II sexta-feira, 15 de outubro de 2010 15:28
    quinta-feira, 14 de outubro de 2010 20:57
    Moderador
  • Apenas isso?? Acabei de fazer continua com o mesmo problema...

    quinta-feira, 14 de outubro de 2010 21:30
  • Afe... ele gera um nome diferente para cada RadioButton><

    tem uma solução aqui:

    http://www.asp.net/data-access/tutorials/adding-a-gridview-column-of-radio-buttons-vb

    <input type="radio" id='<%# GetUniqueRadioButtonID(...) %>' name='SuppliersGroup' value='<%# GetRadioButtonValue(...) %>' ... />

    da uma olhada no Link


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    There is no place like 127.0.0.1
    Só existem 10 tipos de pessoas no mundo... as que leem em binario e as outras...
    Se não da certo como voce esta fazendo... Tente fazer de um jeito totalmente diferente....
    quinta-feira, 14 de outubro de 2010 21:59
    Moderador
  • protected void cbxSelecionar_CheckedChanged(object sender, EventArgs e)
     {
       foreach (GridViewRow row in gdwListarProblemas.Rows)
       {
        CheckBox ch = (CheckBox)row.FindControl("cbxSelecionar");
    
        if (ch != null)
        {
         if (ch.Checked)
         {
          txtNomeProblema.Text = row.Cells[2].Text;
    
          objProblema._problemaID = Convert.ToInt32(row.Cells[1].Text);
    
          objProblema = objProblemaBO.selectProblema(Convert.ToInt32(row.Cells[1].Text));
    
          preencherFormulario();
         }
        }
       }
      }
    
    

    Consegui fazer utilizando uma componente Ajax!

    mutuallyExclusiveCheckBoxExtender

    A questão é se adicionar um checkbox no grid ele é "clonado" e quando é selecionado é como se o mesmo estivesse selecionado.

    O que eu fiz, adicionei ao meu checkbox "cbxSelecionar" o componente Ajax mutuallyExclusiveCheckBoxExtender que pode ser conectado a qualquer controle CheckBox ASP.NET. Ao adicionar um número de caixas para a mesma "chave"(no caso do grid), apenas uma caixa com a chave especificada pode ser verificada em um momento.

    Eu define a chave do meu checkbox como ch , entao quando eu selecionar um e tentar selecionar outro ele muda o Cheked para a o proxima selecionado.

    Mesmo assim valeu pela ajuda.

    sexta-feira, 15 de outubro de 2010 15:28