public ControlDeFormulario(ContenedorDeBloques padre, string id, enumTipoControl tipo, string etiqueta, enumCssControlesFormulario claseCss, string ayuda)
 {
     Padre    = padre;
     Id       = id;
     Etiqueta = etiqueta;
     Ayuda    = ayuda;
     ClaseCss = claseCss;
     Tipo     = tipo;
 }
        public static string RenderAtributos(string propiedad, string idHtml, enumTipoControl tipo, enumCssControlesFormulario clase, string ayuda, string otrosAtributos = "")
        {
            var atributos = $@"id=¨{idHtml}¨ {otrosAtributos}
                            tipo=¨{tipo.Render()}¨
                            class=¨{Css.Render(clase)}¨
                            title=¨{ayuda}¨
                            propiedad=¨{propiedad}¨";

            return(atributos);
        }
 public AtributosHtml(string idHtmlContenedor, string idHtml, string propiedad, enumTipoControl tipoDeControl, bool visible, bool editable, bool obligatorio, string ayuda, object valorPorDefecto)
 {
     IdHtmlContenedor = idHtmlContenedor;
     IdHtml           = idHtml;
     Propiedad        = propiedad;
     TipoDeControl    = tipoDeControl;
     Visible          = visible;
     Editable         = editable;
     Obligatorio      = obligatorio;
     Ayuda            = ayuda;
     ValorPorDefecto  = valorPorDefecto;
 }
        public static string Render(this enumTipoControl tipo)
        {
            switch (tipo)
            {
            case enumTipoControl.SelectorDeFiltro: return("selector");

            case enumTipoControl.SelectorDeElemento: return("selector-de-elemento");

            case enumTipoControl.ListaDeElemento: return("lista-de-elemento");

            case enumTipoControl.ListaDinamica: return("lista-dinamica");

            case enumTipoControl.Editor: return("editor");

            case enumTipoControl.RestrictorDeFiltro: return("restrictor-filtro");

            case enumTipoControl.RestrictorDeEdicion: return("restrictor-edicion");

            case enumTipoControl.Archivo: return("archivo");

            case enumTipoControl.Check: return("check");

            case enumTipoControl.UrlDeArchivo: return("url-archivo");

            case enumTipoControl.VisorDeArchivo: return("visor-archivo");

            case enumTipoControl.ImagenDelCanvas: return("imagen-de-canva");

            case enumTipoControl.DesplegableDeFiltro: return("desplegable-de-filtro");

            case enumTipoControl.GridModal: return("grid-modal");

            case enumTipoControl.TablaBloque: return("tabla-bloque");

            case enumTipoControl.Bloque: return("bloque");

            case enumTipoControl.ZonaDeMenu: return("zona-menu");

            case enumTipoControl.ZonaDeDatos: return("zona-de-datos");

            case enumTipoControl.ZonaDeFiltro: return("zona-de-filtro");

            case enumTipoControl.Menu: return("menu");

            case enumTipoControl.VistaCrud: return("vista-crud");

            case enumTipoControl.DescriptorDeCrud: return("descriptor-crud");

            case enumTipoControl.Opcion: return("opcion");

            case enumTipoControl.Label: return("label");

            case enumTipoControl.Referencia: return("referencia");

            case enumTipoControl.Lista: return("lista");

            case enumTipoControl.SelectorDeFecha: return("selector-de-fecha");

            case enumTipoControl.SelectorDeFechaHora: return("selector-de-fecha-hora");

            case enumTipoControl.AreaDeTexto: return("area-de-texto");

            case enumTipoControl.Plantilla: return("plantilla");

            case enumTipoControl.Mantenimiento: return("mantenimiento");

            case enumTipoControl.pnlCreador: return("panel-creador");

            case enumTipoControl.pnlEditor: return("panel-editor");

            case enumTipoControl.pnlExportacion: return("panel-exportacion");

            case enumTipoControl.pnlEnviarCorreo: return("panel-enviar-correo");

            case enumTipoControl.pnlBorrado: return("panel-borrado");

            case enumTipoControl.ModalDeRelacion: return("modal-de-relacion");

            case enumTipoControl.ModalDeConsulta: return("modal-de-consulta");

            case enumTipoControl.ModalDeSeleccion: return("modal-de-seleccion");

            case enumTipoControl.FiltroEntreFechas: return("filtro-entre-fechas");

            case enumTipoControl.ListaDeValores: return("lista-de-valores");
            }
            throw new Exception($"El tipo de control {tipo} no está definido como renderizarlo");
        }
        public static AtributosHtml AtributosComunes(string idHtmlContenedor, string idHtml, string propiedad, enumTipoControl tipoDeControl)
        {
            var a = new AtributosHtml();

            a.IdHtmlContenedor = idHtmlContenedor;
            a.IdHtml           = idHtml;
            a.Propiedad        = propiedad;
            a.TipoDeControl    = tipoDeControl;
            a.Editable         = true;
            a.Visible          = true;
            a.Obligatorio      = false;

            return(a);
        }