none
Deshabilitar Items (li) de mi menú principal y volver habilitarlas despúes RRS feed

  • Pregunta

  • Hola muy buenas comunidad, espero puedan ayudarme.

    Tengo un menú lateral en mi proyecto, con varios items(li), lo que deseo hacer es que aparezcan deshabilitados al arrancar el proyecto y que se habiliten despues de haber iniciao sesión. Uso MVC - C#.

    No se si se pueda hacer desde el controlador directamento o en que parte hacerlo.

    Agradezco cualquier aporte, ya que soy nuevo por aqui.


    • Editado MaxLuna sábado, 14 de abril de 2018 17:22
    sábado, 14 de abril de 2018 17:22

Respuestas

  • Parece ser un trabajo para la vista.  Sí es posible, pero tendría usted que decirnos qué tipo de menú utiliza.  Por ejemplo, en Bootstrap ponemos la clase "disabled" en <li> y ponemos un Javascript que deshabilita el clic del hipervínculo:

    $(function() {
        $('.nav li.disabled a').click(function(ev) {
            ev.preventDefault(); //Una de estas 2 líneas debería funcionar bien.
            return false;
        });
    });


    Jose R. MCP
    Code Samples

    • Marcado como respuesta MaxLuna domingo, 15 de abril de 2018 0:04
    sábado, 14 de abril de 2018 17:49
    Moderador

Todas las respuestas

  • Parece ser un trabajo para la vista.  Sí es posible, pero tendría usted que decirnos qué tipo de menú utiliza.  Por ejemplo, en Bootstrap ponemos la clase "disabled" en <li> y ponemos un Javascript que deshabilita el clic del hipervínculo:

    $(function() {
        $('.nav li.disabled a').click(function(ev) {
            ev.preventDefault(); //Una de estas 2 líneas debería funcionar bien.
            return false;
        });
    });


    Jose R. MCP
    Code Samples

    • Marcado como respuesta MaxLuna domingo, 15 de abril de 2018 0:04
    sábado, 14 de abril de 2018 17:49
    Moderador
  • Muchas gracias José, en efecto eso me ha funcionado!

    Ahora me resulta una duda, cómo puedo habilitar esos <li> desde mi controlador en C#, la idea es que al inicio aparezcan todas las opciones (los <li> de los menús) deshabilitadas y al acceder con un determinado usuario habilite las que le corresponde.

    Entonces, cómo puedo habilitar una opción (<li>) desde C#.

    O si puedo hacerlo desde la vista? cómo sería?

    Gracias nuevamente.


    • Editado MaxLuna domingo, 15 de abril de 2018 0:10
    domingo, 15 de abril de 2018 0:07
  • Simple y sencillamente no agregue la clase "disabled" al elemento <li>.

    Jose R. MCP
    Code Samples

    domingo, 15 de abril de 2018 23:35
    Moderador
  • Buenas José, gracias por contestar.

    Simple y sencillamente no agregue la clase "disabled" al elemento <li>.

    Si hago eso, me deja habilitadas todas las opciones del menú; pero yo solo quiero que aparezcan habilitadas las opciones del menú según el usuario (con su respectivo rol) logueado.

    miércoles, 18 de abril de 2018 23:48
  • Solamente no agregue "disabled" a las que necesitan estar habilitadas.  Utilice un condicional por cada elemento de menú.

    Jose R. MCP
    Code Samples

    jueves, 19 de abril de 2018 0:15
    Moderador
  • Buenas José.

    Quizás me estoy explicando mal.

    Al iniciar mi aplicación aparecen deshabilitadas las opciones del menú, tal como me lo dijo en la solución anterior de este foro, lo he aplicado y en efecto, al iniciar tengo todas las opciones deshabilitadas.

    Pero al entrar con algun usuario me gustaría que aparecieran habilitadas las opciones del menú que sólo le correspondan a el, y si entro con otro usuario que sólo me aparezcan habilitadas las opciones de ese usuario.

    Utilice un condicional por cada elemento de menú.

    Esto debo hacerlo en la vista? o en el controlador?

    Cabe mencionar que estoy usuando mi propio sistema de usuarios y logueo. Ese menú lo tengo en mi Layout, lo que significa que aparecerá en todas las páginas de la aplicación.

    Gracias de antemano por la ayuda.


    • Editado MaxLuna jueves, 19 de abril de 2018 23:28
    jueves, 19 de abril de 2018 22:35
  • En la vista.  Yo pasaría los datos necesarios para descubrir qué menúes hay que habilitar a través del ViewData.  Entonces en el _layout.cshtml yo podría usar condicionales para descubrir cuáles son los menúes que deben habilitarse y cuáles no.


    Jose R. MCP
    Code Samples

    viernes, 20 de abril de 2018 4:19
    Moderador
  • Estimado, gracias por responder.

    Pero he estado ya varios dias tratando de hacer esto y aún no lo consigo, he buscado y no encuentro algo similar que me pueda orientar.

    martes, 24 de abril de 2018 14:52