none
Como buscar un Control dentro de un UserControl RRS feed

  • Pregunta

  • Hola que tal!

    Tengo una pagina .aspx que tiene un UC lo que deseo hacer es inhabilitar unos controles que tiene el UC para ello estoy llamando a un metodo que cree en el UC desde mi aspx.cs:

    public void InhabilitarControles(List<string> controlName)
            {
                foreach(string cN in controlName)
                {
                    Control control = this.FindControl(cN) as Control;
                }
            }

    Por el momento estoy probando a encontrar el control, luego estoy pensando en obtener que tipo de control es(textbox, dropdown,...) para deshabilitarlo

    Cuando ejecuto la aplicacion para ver si encuentra el control obtengo esto:

    Del lado izquierdo estan los controles en donde estan los que quiero deshabilitar, pero mi variable control es igual a null. Entonces aqui es donde no se que podria realizar para poder encontrar ese control.

    Gracias...

    viernes, 21 de marzo de 2014 21:44

Respuestas

  • hola

    se supone que si creas un User Control es porque quieres encapsular funcionalidad, por lo que acceder a los controles internos no es una buena idea

    algo comenta Jose sobre el tema, no debes romper el encapsulado del control, sino que este debe exponer la funcionalidad

    si quieres deshabilitar controles dentro del user control que sea el propio contro quien exponga la funcionalidad

    public class CustomControl : UserControl {

      public void Deshabilitar(){

          //aqui accedes a los controles internos y los desjabilitas

       }

    }

    desde la pagina usarias

    private void button1_Click(...){

       UserControl1.Deshabilitar();

    }

    de esta forma abstraes de la implementacion del control

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Alberto PoblacionMVP sábado, 22 de marzo de 2014 7:25
    • Marcado como respuesta draw507 miércoles, 26 de marzo de 2014 13:40
    sábado, 22 de marzo de 2014 2:43

Todas las respuestas

  • Hola

    esta acción la realizar en el mismo UC? o en la página?

    si es en la página deberás hacer lo siguiente para acceder a los controles

    public object ddlNacionalidad{
    get { return ddlNacionalidad.SelectedValue; }
    set { ddlNacionalidad.SelectedValue = value; }
    }


    como verás es necesario hacer uso de getters y setters para acceder a los controles


    Si se solucionó tu consulta no olvides marcar la respuesta de esta forma mantendremos el orden en el Foro.

    José Carlos Barba Gutierrez
    Lima - Perú
    Saludos

    viernes, 21 de marzo de 2014 22:16
  • hola

    se supone que si creas un User Control es porque quieres encapsular funcionalidad, por lo que acceder a los controles internos no es una buena idea

    algo comenta Jose sobre el tema, no debes romper el encapsulado del control, sino que este debe exponer la funcionalidad

    si quieres deshabilitar controles dentro del user control que sea el propio contro quien exponga la funcionalidad

    public class CustomControl : UserControl {

      public void Deshabilitar(){

          //aqui accedes a los controles internos y los desjabilitas

       }

    }

    desde la pagina usarias

    private void button1_Click(...){

       UserControl1.Deshabilitar();

    }

    de esta forma abstraes de la implementacion del control

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Alberto PoblacionMVP sábado, 22 de marzo de 2014 7:25
    • Marcado como respuesta draw507 miércoles, 26 de marzo de 2014 13:40
    sábado, 22 de marzo de 2014 2:43