none
Desabilitar todos os checkbox do grid diferente de Checked=true RRS feed

  • Pergunta

  • Boa noite!

    Prezados estou tomando pauladas...

    Tenho um GridView que possui checkbox, o que quero é por exemplo:

    o GridView possui sete linhas dou um click no checkbox da linha 2, gostaria que os demais checkbox se tornassem Checked = false.

    Criei o evento abaixo para os checkbox

     protected void Check_Clicked(Object sender, EventArgs e)
           {
    
                CheckBox ck1 = (CheckBox) sender;
                GridViewRow grow = (GridViewRow)ck1.NamingContainer;
    
    
                if (ck1.Checked)
                {
                    //Deveria desabilitar os demais checkbox
                    
                }
    }

    e no aspx

    chamo o evento desta forma:

    <ItemTemplate>
         <asp:CheckBox ID="chkSelecione" runat="server" AutoPostBack="true"  OnCheckedChanged="Check_Clicked" />
    </ItemTemplate>

    esta dando certo, mas como desabilitar os demais checkbox?

    desde já, obrigado!

     



    • Editado M. Almeida quarta-feira, 22 de maio de 2013 23:47
    quarta-feira, 22 de maio de 2013 23:44

Respostas

  • Bom dia, Samuel.

    Obrigado pela sua atenção. Segui a sua orientação e funcionou. Abaixo o código.

     protected void Check_Clicked(Object sender, EventArgs e)
           {
    
                CheckBox ck1 = (CheckBox) sender;
                GridViewRow grow = (GridViewRow)ck1.NamingContainer;
    
    
                if (ck1.Checked)
                {
                    for (int i = 0; i < gdGerarRotas.Rows.Count; i++)
                    {
                        CheckBox cb = (CheckBox)gdGerarRotas.Rows[i].FindControl("chkSelecione");
                        if (gdGerarRotas.Rows[i].RowIndex != grow.RowIndex)
                        {
                            cb.Checked = false;
                            cb.Enabled = false;
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < gdGerarRotas.Rows.Count; i++)
                    {
                        CheckBox cb = (CheckBox)gdGerarRotas.Rows[i].FindControl("chkSelecione");
                        cb.Checked = false;
                        cb.Enabled = true; 
                    }
                }
                
    
           }

    • Marcado como Resposta M. Almeida quinta-feira, 23 de maio de 2013 14:06
    quinta-feira, 23 de maio de 2013 14:06
  • Cara,

    Você tem algumas formas de fazer isso, porém em todas vai precisar percorrer o gridview para manipular o controle que deseja.

    1ª - JavaScript (Não precisa de post)

    2ª - C# (Vai precisar de post (é só utilizar autopostback="true"))

    A lógica é percorrer o gridview e manipulando um a um.


    Atenciosamente, Samuel dos Anjos

    quinta-feira, 23 de maio de 2013 00:48

Todas as Respostas

  • Cara,

    Você tem algumas formas de fazer isso, porém em todas vai precisar percorrer o gridview para manipular o controle que deseja.

    1ª - JavaScript (Não precisa de post)

    2ª - C# (Vai precisar de post (é só utilizar autopostback="true"))

    A lógica é percorrer o gridview e manipulando um a um.


    Atenciosamente, Samuel dos Anjos

    quinta-feira, 23 de maio de 2013 00:48
  • Bom dia, Samuel.

    Obrigado pela sua atenção. Segui a sua orientação e funcionou. Abaixo o código.

     protected void Check_Clicked(Object sender, EventArgs e)
           {
    
                CheckBox ck1 = (CheckBox) sender;
                GridViewRow grow = (GridViewRow)ck1.NamingContainer;
    
    
                if (ck1.Checked)
                {
                    for (int i = 0; i < gdGerarRotas.Rows.Count; i++)
                    {
                        CheckBox cb = (CheckBox)gdGerarRotas.Rows[i].FindControl("chkSelecione");
                        if (gdGerarRotas.Rows[i].RowIndex != grow.RowIndex)
                        {
                            cb.Checked = false;
                            cb.Enabled = false;
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < gdGerarRotas.Rows.Count; i++)
                    {
                        CheckBox cb = (CheckBox)gdGerarRotas.Rows[i].FindControl("chkSelecione");
                        cb.Checked = false;
                        cb.Enabled = true; 
                    }
                }
                
    
           }

    • Marcado como Resposta M. Almeida quinta-feira, 23 de maio de 2013 14:06
    quinta-feira, 23 de maio de 2013 14:06