luroberto 0 Denunciar post Postado Abril 27, 2015 Boa tarde Amigos,Tenho o seguinte código que verifica quais os checkboxs estão marcados para efetuar determinadas tarefas de insert no banco : classeInsert c = new classeDeInsert(); //instancia da classe que possui o método de insert no banco //Faço a verificação em cada checkbox para saber se está marcado //Em cada checkbox marcado, chamo o método passando 3 parâmetros que são: //Login do usuário selecionado, código da aplicação que é o checkbox marcado e o perfil selecionado if (cbx1.Checked == true) { c.IncluiAcesso(ddlUsuario.SelectedItem.Value, "1", ddl1.SelectedItem.Value); } if (cbx2.Checked == true) { c.IncluiAcesso(ddlUsuario.SelectedItem.Value, "2", ddl2.SelectedItem.Value); } if (cbx3.Checked == true) { c.IncluiAcesso(ddlUsuario.SelectedItem.Value, "3", ddl3.SelectedItem.Value); } if (cbx4.Checked == true) { c.IncluiAcesso(ddlUsuario.SelectedItem.Value, "4", ddl4.SelectedItem.Value); } if (cbx5.Checked == true) { c.IncluiAcesso(ddlUsuario.SelectedItem.Value, "5", ddl5.SelectedItem.Value); } O problema é que o código não está legal utilizando um if para cada verificação, pois se eu incluir 20, 30 checkboxs não será viável efetuar um if para cada um deles.O que preciso fazer é substiruir os If´s por foreach ou algum outro laço para identificar quais os checkboxs estão marcados . Alguém tem alguma sujestão para me ajudar ?Obs.: Esses checkboxes estão em um Panel que incluí no form.Estou utilizando páginas asp.Net C#Desde já, agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Dan Borges 26 Denunciar post Postado Abril 27, 2015 Poderia partir do tipo: foreach(WebControl ctrl in Panel.Controls) { if(ctrl is CheckBox) { ... } } Eu fiz na mente, não sei se a sintaxe está certa. Compartilhar este post Link para o post Compartilhar em outros sites
luroberto 0 Denunciar post Postado Abril 27, 2015 Olá Dan Borges, obrigado pela dica. Seria mais ou menos isso, só que no seu código, verifca apenas se o tipo de controle é um checkbox, mas preciso verificar se é um checkbox, se ele está marcado e talvez, gravar o nome do checkbox em uma lista, para posteriormente verificar todos os itens que foram adicionados na lista para poder utilizá-los. Compartilhar este post Link para o post Compartilhar em outros sites
Dan Borges 26 Denunciar post Postado Abril 27, 2015 Bem, checar se o checkbox é marcado é simples: foreach(WebControl ctrl in Panel1.Controls) { if(ctrl is CheckBox) { if(((CheckBox)ctrl).Checked) { //O que você deseja fazer? } } } A parte da lista não entendi. Você também pode usar um laço for for(int x = 0; x < Panel1.Controls.Count; x++) { if(Panel1.Controls[x] is CheckBox) { if(((CheckBox)Panel1.Controls[x]).Checked) { //O que fazer? } } } Compartilhar este post Link para o post Compartilhar em outros sites