Substituir if por foreach em CSharp asp.net

27/04/2015

0

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.
Luciano

Luciano

Responder

Posts

27/04/2015

Jothaz

O número sequencial deve corresponder ao check marcado?

Exemplo:

  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); }   
 


Ou pode ser assim:
  if (cbx1.Checked == true)  {
       c.IncluiAcesso(ddlUsuario.SelectedItem.Value, "1", ddl1.SelectedItem.Value); }
          
  
  if (cbx3.Checked == true)  {
       c.IncluiAcesso(ddlUsuario.SelectedItem.Value, "2", ddl3.SelectedItem.Value); }   
 
  if (cbx5.Checked == true)  {
       c.IncluiAcesso(ddlUsuario.SelectedItem.Value, "3", ddl5.SelectedItem.Value); }  


Para adiantar acredito que a melhor solução é utilizar o controle CheckBoxList:

Construtor CheckBoxList

CheckBoxList control example
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar