none
Mostrar / ocultar funciones en asp.net C# con consulta a una base de datos. RRS feed

  • Pregunta

  • Hola,

    Les explico, estoy creando una aplicación web con asp.net C# framework y SQL SERVER, parte de aplicación es guardar unos datos en una tabla. Esto no es problema, tengo creado un formulario y dicho formulario guarda los datos en la tabla correspondiente. El problema esta en que el formulario cambia según el tipo de dato que quiera guardar, me explico. Si son bebidas tiene que mostrar unos campos, si son alimentos otros, si son pescados otros y así sucesivamente.

    El usuario selecciona que tipo de dato va quiere meter, bebidas, alimentos, pescados.... y tras ello se muestra el formulairo, lo que quiero hacer si se puede, en una tabla de la base de datos, poner el nombre de los campos, y mostrarlos o no según el tipo de dato seleccionado. Por ejemplo, Si selecciona bebidas que aparezca el label que diga "seleciona bebibda" pero si selecciona comida que aparezca el label que diga "seleciona comida". Y estos permisos se los doy yo desde la tabla. Es posible?

    Gracias por la ayuda.

    martes, 3 de septiembre de 2019 15:37

Respuestas

  • hola

    Pero tu problema es con la base de datos o con la visualizacion en la pagina web ? porque parece al pprincipio un problema pero despues es diferente

    Si el problema es de base de datos los datos de diferentes tipos se resuelves modelando la herencia, hay varias formas, pero si usas entity framework es muy simple de modelar las clases y como mapean contra la db

    [Entity Framework][Code First] Herencia - Tabla por tipo

    >>en una tabla de la base de datos, poner el nombre de los campos, y mostrarlos o no según el tipo de dato seleccionado

    columnas dinamicas en una tabla no se pueden definir, pero si podrias definir una columna que contenga un json o xml con metadata de configuracion que indique que mostrar o que no

    tendrias una tabla de dos columnas, una columna seria el tipo, bebidas, comidas etc y la otra columna tendra el json con los nombre de los controles o textos que deben mostrarse

    {
         seleccionText: "bebida",
         campo1: true,
         campo2:true,
         //resto
    }


    para la comida seria

    {
         seleccionText: "comida",
         campo1: true,
         campo2: false,
         //resto
    }

    ese json seria la configuracion del tipo, aplicando el visible o no segun lo indica para cada campos

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 4 de septiembre de 2019 2:52

Todas las respuestas

  • hola

    Pero tu problema es con la base de datos o con la visualizacion en la pagina web ? porque parece al pprincipio un problema pero despues es diferente

    Si el problema es de base de datos los datos de diferentes tipos se resuelves modelando la herencia, hay varias formas, pero si usas entity framework es muy simple de modelar las clases y como mapean contra la db

    [Entity Framework][Code First] Herencia - Tabla por tipo

    >>en una tabla de la base de datos, poner el nombre de los campos, y mostrarlos o no según el tipo de dato seleccionado

    columnas dinamicas en una tabla no se pueden definir, pero si podrias definir una columna que contenga un json o xml con metadata de configuracion que indique que mostrar o que no

    tendrias una tabla de dos columnas, una columna seria el tipo, bebidas, comidas etc y la otra columna tendra el json con los nombre de los controles o textos que deben mostrarse

    {
         seleccionText: "bebida",
         campo1: true,
         campo2:true,
         //resto
    }


    para la comida seria

    {
         seleccionText: "comida",
         campo1: true,
         campo2: false,
         //resto
    }

    ese json seria la configuracion del tipo, aplicando el visible o no segun lo indica para cada campos

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 4 de septiembre de 2019 2:52
  • Gracias por la respuestas Leandro y en primer lugar agradecerte lo que haces por todos y en segundo lugar tu blog me ha salvado de muchos problemas y me ha ayudado mucho. Eres muy muy grande. Voy a intentar explicar mejor lo que quiero conseguir si se puede.

    Lo que me explicas aquí:

    seleccionText: "comida", campo1: true, campo2: false, //resto

    Lo tengo claro, pero mi duda es la siguiente, si en vez de bebidas, comidas que hay ahora, en un tiempo deciden poner por ejemplo bazar, y parte de los texbox son útiles para dichos artículos, tendría que volver a entrar en la programación y volver a poner a mano:

    SeleccionText:"Bazar"

    campo:true etc..

    Lo que quiero es que el propio cliente pueda seleccionar que labels y que texbox sean visibles en esa nueva "seccion" sin tener que programar nada. Creo que se llaman Formularios dinamicos o configurables.

    Un saludo y muchas gracias

    jueves, 5 de septiembre de 2019 6:53