none
Hacer TextBox.Enable = true en otro webform preguntando si se acciono Boton asp.net RRS feed

  • Pregunta

  • Hola, como les va?....Molesto para consultarles lo siguientes.....

    Tengo un TextBox con Enable en "false"..........Quiero hacerlo Enable = "true" en un ultimo webform si en el anterior formulario se acciono un ButtonNuevo, el cual me Response.Redirect("") a ese ultimo webform ......Quisiera saber esa sintaxis, en donde la coloco (si en (!=PostBack), o por fuera de esto ultimo, en este ultimo webform........(si hay que agregar la clase del anterior webform, o referenciarla, etc...).......Es decir, quiero cambiar de estado el Textbox en otra pagina (seria form hijo)...... 

    Desde ya estoy muy agradecido, saludos, nos vemos.....

    miércoles, 9 de septiembre de 2015 3:49

Respuestas

  • Lo que tendrás que hacer es pasar un valor en un parámetro a la nueva página, bien sea a través de post o de get (en el querystring).

    Si haces un Response.Redirect (desconozco el motivo por el que lo haces así) tendrás que hacerlo añadiendo el valor al querystring. Por ejemplo:

    Response.Redirect("SegundoWebForm.aspx?habilitar=1");

    De esta forma en el evento Load del segundo webform puedes comprobar el valor de "habilitar" y habilitar o deshabilitar el textbox. Algo así:

    if (!IsPostBack)
      TextBox.Enable = (Request.QueryString["habilitar"]=="1");


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta GuilloFerrero jueves, 10 de septiembre de 2015 3:52
    miércoles, 9 de septiembre de 2015 8:06

Todas las respuestas

  • Lo que tendrás que hacer es pasar un valor en un parámetro a la nueva página, bien sea a través de post o de get (en el querystring).

    Si haces un Response.Redirect (desconozco el motivo por el que lo haces así) tendrás que hacerlo añadiendo el valor al querystring. Por ejemplo:

    Response.Redirect("SegundoWebForm.aspx?habilitar=1");

    De esta forma en el evento Load del segundo webform puedes comprobar el valor de "habilitar" y habilitar o deshabilitar el textbox. Algo así:

    if (!IsPostBack)
      TextBox.Enable = (Request.QueryString["habilitar"]=="1");


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta GuilloFerrero jueves, 10 de septiembre de 2015 3:52
    miércoles, 9 de septiembre de 2015 8:06
  • hola

    >>Quisiera saber esa sintaxis, en donde la coloco (si en (!=PostBack), o por fuera de esto ultimo, en este ultimo webform

    exacto es deberias definirlo dentro del Load en el if que valida el IsPostBack

    public void Page_Load(...){
    
        if(!IsPostBack){
    
           //aqui logica que oculta el textbox
    
       }
    
    }

    >>quiero cambiar de estado el Textbox en otra pagina (seria form hijo)

    es que si navegas con el Response.Redirect() no hay concepto de forma hijo o padre esto solo aplica si implemetas popup de ventanas

    si navegas podrias usar el querystring como comento Asier o sino poner el valor en el objeto Session antes de redireccionar a la otra pagina

    o quizas usaresta tecnica

    Cross-Page Posting in ASP.NET Web Pages

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 9 de septiembre de 2015 12:49
  • el valor que me dices que pase seria 

    if (!IsPostBack)
      TextBox.Enable = (Request.QueryString["habilitar"]=="1"); // "habilitar" == "1" seria "habilitar" == true

    Porque lo qu equiero poner en el 2° formulario es TextBox.Enable = true;

    entonces, deberia quedar, en 1° formulario: 

    Response.Redirect("SegundoWebForm.aspx?habilitar=true");

     y en el 2° formulario:

    TextBox.Enable = (Request.QueryString["habilitar"]=="true");

    Seria asi??......Nos vemos....

    jueves, 10 de septiembre de 2015 3:49
  • Hola Guillermo,

    te va a funcionar de las dos formas. Si lo haces con el valor 1 (Request.QueryString["habilitar"]=="1") va a devolver true o false (dependiendo de el valor que encuentre en la  url), con lo que lo que le estás asignando a la propiedad Enable sigue siendo un valor booleano.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    jueves, 10 de septiembre de 2015 7:11
  • Hola Guillermo,

    te va a funcionar de las dos formas. Si lo haces con el valor 1 (Request.QueryString["habilitar"]=="1") va a devolver true o false (dependiendo de el valor que encuentre en la  url), con lo que lo que le estás asignando a la propiedad Enable sigue siendo un valor booleano.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    Asier, ahora el Enable de "TextBox.Enable", me sale subrayado en rojo y me dice que System.Web.UI.WebControls.TextBox no contiene una definicion de "Enable" que acepte un primer argumento de System.Web.UI.WebControls.TextBox (Falta una directiva "using" o referencia de ensamblado?).

    por que me sale eso....y cual seria la solucion??.....Disculpa,. y muchisimas gracias....

    viernes, 11 de septiembre de 2015 3:06
  • Hola Guillermo,

    te va a funcionar de las dos formas. Si lo haces con el valor 1 (Request.QueryString["habilitar"]=="1") va a devolver true o false (dependiendo de el valor que encuentre en la  url), con lo que lo que le estás asignando a la propiedad Enable sigue siendo un valor booleano.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    Asier, ahora el Enable de "TextBox.Enable", me sale subrayado en rojo y me dice que System.Web.UI.WebControls.TextBox no contiene una definicion de "Enable" que acepte un primer argumento de System.Web.UI.WebControls.TextBox (Falta una directiva "using" o referencia de ensamblado?).

    por que me sale eso....y cual seria la solucion??.....Disculpa,. y muchisimas gracias....

    Y el TextBox se llama TextDescripcion....Es lo mismo que el TextBox de ejemplo???
    viernes, 11 de septiembre de 2015 3:44
  • Sí claro si se llama TextDescripcion deberás utilizar TextDescripcion.Enable.

    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    viernes, 11 de septiembre de 2015 6:15
  • Sí claro si se llama TextDescripcion deberás utilizar TextDescripcion.Enable.

    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    Asier, me sle subrayado en rojo "Enable", 

    y me dice que System.Web.UI.WebControls.TextBox no contiene una definicion de "Enable" que acepte un primer argumento de System.Web.UI.WebControls.TextBox (Falta una directiva "using" o referencia de ensamblado?).

    por que me sale eso....y cual seria la solucion??.....Disculpa,. y muchisimas gracias....

    sábado, 12 de septiembre de 2015 13:09
  • Sí, perdón, un error al escribir el mensaje. El nombre de la propiedad es Enabled.

    Deberías utilizar TextDescripcion.Enabled


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    sábado, 12 de septiembre de 2015 18:34