RECARREGAR PERMISAO EM MENU

 Tópico anterior Próximo tópico Novo tópico

RECARREGAR PERMISAO EM MENU

C#

 Compartilhe  Compartilhe  Compartilhe
#478721 - 28/12/2017 00:22:42

JOAOBENEVIDES
RIBEIRAO PRETO
Cadast. em:Maio/2009


Citação:
:
Em algum lugar você grava as permissões do usuário, certo?

sim eu gravo numa tabela

........Todos Podemos Ajudar Um ao Outro ajude vc tambem.....


#478722 - 28/12/2017 00:24:48

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Ok, basta buscar os dados dessa tabela, percorrer o grid, habilitando os ítens conforme a sua estrutura de permissão.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478723 - 28/12/2017 00:32:09

JOAOBENEVIDES
RIBEIRAO PRETO
Cadast. em:Maio/2009


estou fazendo assim para habilitar os menus
primeiro eu desabilito tudo
e depois uso isto para habilitar

public static void ValidaMenu(int CodUsuario, MenuStrip nomeMenu)
        {
            SqlDataReader dr = default(SqlDataReader);
            List<ToolStripMenuItem> myItems = Funcoes.GetAllMenuStripItems.GetItems(nomeMenu);

            

            using (SqlConnection con = AcessoBancodeDados.ConexaoSQL())
            {
                try
                {
                    con.Open();
                    string sql = "select Nome_Interno from usuario_acesso where Cod_Usuario=" + CodUsuario;
                    SqlCommand cmd = new SqlCommand(sql, con);

                    
                    //executa a consulta.
                    dr = cmd.ExecuteReader();

                    while (dr.Read())
                    {
                        string NomeMenuInterno = dr["Nome_Interno"].ToString();

                        //if (NomeMenuInterno == "Site")
                        //{
                        //    //  return;
                        //}

                        foreach (var item in myItems)
                        {
                            if (item.Name == NomeMenuInterno)
                            {
                                item.Visible = true;
                                
                                break;
                            }

                        }
                        nomeMenu.Refresh();


                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    con.Close();
                }

            }
        }
    }
}

........Todos Podemos Ajudar Um ao Outro ajude vc tambem.....


#478724 - 28/12/2017 00:49:39

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Você não está entendendo a parte de instância. Quando você instancia algo e altera essa instância, você não está alterando o objeto original instanciado. Exemplo:

int x = 2;
int y = 1 + x;
int z = 2 + x;

//Alterando "x" não vai alterar as variáveis
x = 3;
//aqui, y e z ainda terão 2 e 3 respectivamente.

O que você está fazendo é exatamente a mesma coisa, mas instanciando o seu menu. Não adianta alterar os ítens na instância de variável, você precisa alterar no menu mesmo ou repassar pro menu a instância de variável alterada.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478725 - 28/12/2017 00:53:56

JOAOBENEVIDES
RIBEIRAO PRETO
Cadast. em:Maio/2009


como eu conseguir corrigir isto ? nao seria distruindo e criando denoco

........Todos Podemos Ajudar Um ao Outro ajude vc tambem.....


#478734 - 28/12/2017 09:07:40

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
No exemplo que postei anteriormente, ele percorre os ítens do menu mesmo e não de uma instância.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478743 - 28/12/2017 11:08:09

JOAOBENEVIDES
RIBEIRAO PRETO
Cadast. em:Maio/2009


Citação:
:
No exemplo que postei anteriormente, ele percorre os ítens do menu mesmo e não de uma instância.

e isto que estou me matando eu executo a funcao
foreach (var item in this.toolStrip1.Items.OfType<ToolStripLabel>())
            {
                ((ToolStripLabel)item).Enabled = false;
            }
mais ele nao desabilita os menus que tem que desabilitar devo estar fazendo coisa errado

........Todos Podemos Ajudar Um ao Outro ajude vc tambem.....


#478745 - 28/12/2017 12:47:12

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Veja que este loop, só vai pegar itens do menu do tipo "ToolStripLabel". Os ítens que quer desabilitar são desse tipo?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478746 - 28/12/2017 13:06:13

JOAOBENEVIDES
RIBEIRAO PRETO
Cadast. em:Maio/2009


sim fiz uma mudanca para achar o menustrip ele ega mais nao desabilita

........Todos Podemos Ajudar Um ao Outro ajude vc tambem.....


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JOAOBENEVIDES em 19/02/2018 12:11:26