none
Habilitar un textbox por medio de un dropdownlist RRS feed

  • Question

  • Hola a todos utilizo visual studio 2010, framework 3.5 y SQL Server 2008

    Les comento tengo un dropdownlist se llama ddlCampus que lo lleno con una tabla por medio de una base de datos en los cuales solo tengo seis registros que son los siguientes:

    1    Rectoria Centro - Sur
    2    EGAP
    3    Santa Fe
    4    EGADE
    5    VIPEC
    6    Otro

    Entonces lo que no se como hacer es que cuando en mi dropdownlist seleccione la opcion 6 me habilite un textbox pero si selecciono otra opcion que no me habilite el textbox

    Wednesday, July 2, 2014 1:42 PM

Answers

  • Hola

    Lo puedes hacer con el evento SeletecIndexChanged del dropdownlist. No olvides colocar la propiedad AutoPostBack del dropdownlist en True.

    Dentro del evento SelectedIndexChanged tendrás algo así

    if (ddlCampus.SelectedValue == "6") {
    
        this.txtCampo.Enabled = true;
    
    } else {
        this.txtCampo.Enabled = false;
    
    }

    No olvides dejar la propiedad Enabled del textbox en false por default, ya que este textbox se habilitará con la selección de tu dropdownlist.


    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


    • Edited by José Barba Wednesday, July 2, 2014 2:17 PM  
    • Marked as answer by crucifijo Wednesday, July 2, 2014 4:25 PM
    Wednesday, July 2, 2014 2:16 PM
  • Hola, entiendo que tendrás los objetos en algún tipo de estructura, el camino a seguir es asignarle al DropDownList la lista de esos objetos. La manera más fácil es hacerlo con un ObjectDataSource. Acá tenés un ejemplo de como hacerlo.

    En tu caso deberías ponerle al DropDownList las propiedades DataTextField y DataValueField a las correspondientes de tu objeto (por ejemplo DataValueField="Id" y DataTextField="Nombre" suponiendo que el objeto sea "Campus(Id:int,Nombre:string)").

    En el SelectedIndexChanged del DDL podrás recuperar el elemento seleccionado y dependiendo del valor activar el textbox o no.

    protected void ddlCampus_SelectedIndexChanged(object sender, EventArgs e)
    {
      if(ddlCampus.SelectedValue == null)
        return;
      int selectedId;
      if(!int.TryParse(ddlCampus.SelectedValue, out selectedId))
        throw new Exception("Tu mensaje de error");
      textBoxQueQuieroMostrar.Visible = selectedId == 6;
    }

    Salu2

    • Marked as answer by crucifijo Wednesday, July 2, 2014 4:25 PM
    Wednesday, July 2, 2014 2:23 PM
  • hola

    lo que recomendaria es que no uses el evento SeletecIndexChanged usa el SelectionChangeCommitted

    asi solo lanza el event cuando hay una accion del usuario


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marked as answer by crucifijo Friday, July 4, 2014 2:03 PM
    Wednesday, July 2, 2014 3:30 PM

All replies

  • Hola

    Lo puedes hacer con el evento SeletecIndexChanged del dropdownlist. No olvides colocar la propiedad AutoPostBack del dropdownlist en True.

    Dentro del evento SelectedIndexChanged tendrás algo así

    if (ddlCampus.SelectedValue == "6") {
    
        this.txtCampo.Enabled = true;
    
    } else {
        this.txtCampo.Enabled = false;
    
    }

    No olvides dejar la propiedad Enabled del textbox en false por default, ya que este textbox se habilitará con la selección de tu dropdownlist.


    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


    • Edited by José Barba Wednesday, July 2, 2014 2:17 PM  
    • Marked as answer by crucifijo Wednesday, July 2, 2014 4:25 PM
    Wednesday, July 2, 2014 2:16 PM
  • Hola, entiendo que tendrás los objetos en algún tipo de estructura, el camino a seguir es asignarle al DropDownList la lista de esos objetos. La manera más fácil es hacerlo con un ObjectDataSource. Acá tenés un ejemplo de como hacerlo.

    En tu caso deberías ponerle al DropDownList las propiedades DataTextField y DataValueField a las correspondientes de tu objeto (por ejemplo DataValueField="Id" y DataTextField="Nombre" suponiendo que el objeto sea "Campus(Id:int,Nombre:string)").

    En el SelectedIndexChanged del DDL podrás recuperar el elemento seleccionado y dependiendo del valor activar el textbox o no.

    protected void ddlCampus_SelectedIndexChanged(object sender, EventArgs e)
    {
      if(ddlCampus.SelectedValue == null)
        return;
      int selectedId;
      if(!int.TryParse(ddlCampus.SelectedValue, out selectedId))
        throw new Exception("Tu mensaje de error");
      textBoxQueQuieroMostrar.Visible = selectedId == 6;
    }

    Salu2

    • Marked as answer by crucifijo Wednesday, July 2, 2014 4:25 PM
    Wednesday, July 2, 2014 2:23 PM
  • Perdón José, posteamos a la vez ;D
    Wednesday, July 2, 2014 2:24 PM
  • hola

    lo que recomendaria es que no uses el evento SeletecIndexChanged usa el SelectionChangeCommitted

    asi solo lanza el event cuando hay una accion del usuario


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marked as answer by crucifijo Friday, July 4, 2014 2:03 PM
    Wednesday, July 2, 2014 3:30 PM
  • Hola Jose,
    Esta funcion del control DropDownList tambien fucionara para habilitar o deshabilitar cualquier otro control? 

    Por ejemplo una tabla?

    Thursday, February 13, 2020 7:07 AM