Usuário com melhor resposta
Desabilitar todos os checkbox do grid diferente de Checked=true

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
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
-
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
- Sugerido como Resposta Samuel Rodrigues dos Anjos quinta-feira, 23 de maio de 2013 00:48
- Marcado como Resposta M. Almeida quinta-feira, 23 de maio de 2013 14:06
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
- Sugerido como Resposta Samuel Rodrigues dos Anjos quinta-feira, 23 de maio de 2013 00:48
- Marcado como Resposta M. Almeida quinta-feira, 23 de maio de 2013 14:06
-
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