Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

luroberto

Identificando a checkox pelo nome CSharp asp.net

Recommended Posts

Boa tarde pessoal, tenho o seguinte código como exemplo:

if (idusuario == 125)
{

     List <aplicacoesModel> aplicacoes =  listaAcessos(); //Lista aplicacoes recebe o resultado do método listaAcessos(); com os acessos que o usuário possui
    
      foreach (var item in aplicacoes) // Faz um foreach na lista, chamada aplicacoes, criada acima
         {

           var aplicacao = "cbx" + item.idaplicacao; // Variável recebe a string cbx concatenando com o id da aplicação

                          
         }


}

Neste trecho tenho uma lista, chamada aplicações com códigos armazenados que foram buscados em uma query do SQL (Método listaAcessos).
Faço um foreach nessa lista para poder verificar quais são os códigos para o usuário especificado.
A cada passagem do foreach armazeno o código idaplicação concatenando com a string "cbx" na variável aplicacao, ficando cbx+id .
Ex.: se o código idaplicacao nessa passagem for igual a 8, será armazenado o valor cbx8 na variável aplicacao.
Após pegar este valor que é o nome de uma entre as checkbox da aplicação, irá marcar a checkbox que possui o mesmo nome da variável como checked,
alguém pode me dar uma idéia como fazer esse processo de marcar a checkbox com o mesmo nome da variável aplicacao como checked a cada passagem do foreach ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você vai bater os Id's, mas para isso você vai ter que fazer outro foreach dentro do controle que tem todos os checkbox.

 

algo como:

foreach(Control c in Seuelemento.Controls)
{
   if((elemento)c.id == seuid))
   {  //codigo }
}

Infelizmente não existe como "buscar" o controle dentro do form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como passar o nome do valor da variável aplicacao (que é a que possui o nome da checkbox)

para uma variável do tipo checkbox, algo tipo :

  foreach (var item in aplicacoes)
             {

                 var aplicacao = "cbx" + item.idaplicacao;
                 CheckBox chk = FindControl(aplicacao);
                 chk.Checked = true;

             }

ai eu marco aquela checkbox como checked ? Sei que o código está errado, mas a ideia é essa.


Já resolvi, o código ficou da seguinte forma :

if (idusuario == 30)
{

 List <aplicacoesModel> aplicacoes =   listaAcessos();
              
                foreach (var item in aplicacoes)
             {

                var aplicacao = "cbx" + item.idaplicacao;
                ((CheckBox)pnAcessoAplicacoes.FindControl(aplicacao)).Checked = true;   

              }



}

Caso alguém precise. Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.