none
Obtener valor de un input type="text" con C# RRS feed

  • Pregunta

  • Buenas noches compañeros!!!

    Tengo el siguiente input HTML

    <input name="IpCorreo" id="txtSearch" class="form-control" runat="server" placeholder="Search..." type="text"/>

    lo que necesito es obtener el su valor al hacer clic con un botón, el problema es que al tratar de obtener el valor este se muestra nulo

    utilizo el siguiente código dentro del cs del aspx para obtener el valor del input, pero como dije antes siempre me marca el valor como nulo

    string CorreoBusca = "";
    CorreoBusca = txtSearch.Value; 

    Espero que puedan ayudarme a resolver mi problema :(

    domingo, 7 de mayo de 2017 3:38

Respuestas

  • Para obtener el valor de un textbox yo uso el:
    string valorasignado = txtSearch.Text;

    Ojo, eso solo vale para los controles <asp:TextBox>. Si es un <input> con runat="server", como ocurre en este caso, entonces hay que usar .Value en lugar de .Text.

    lunes, 8 de mayo de 2017 17:22

Todas las respuestas

  • Dado que le tienes puesto un "id" y también el runat="server", debería funcionar correctamente usando txtSearch.Value.

    Si te devuelve null, tiene que estar fallando alguna cosa por algún otro sitio, que no es visible en el ejemplo que has aportado. Puede ser, por ejemplo, que lo estés "machacando" con una asignación en algún otro evento que se dispara antes que esa línea. O si no está en un evento, que lo estés llamando demasiado pronto en el ciclo de vida de la página. O que tengas javascript que lo machaque en lado cliente al hacer el Submit. O que no se transmita en el submit. Esto ocurriría si el <input...> estuviese ubicado en el HTML fuera del <form> que ocasoina el postback al servidor.

    Editado: Una sugerencia es que pruebes a obtenerlo por "name" en lugar de "id" usando el Request.Form: CorreoBusca=Request.Form["IpCorreo"]; Pero esto también fallará si está fuera del Form o si algún otro elemento del código cliente lo vacía antes de que lo recibas.

    domingo, 7 de mayo de 2017 6:16
  • hola

    Esta raro lo que planteas porque en principio deberia funcionar

    puede identificar si inicilaizas el textbox en el Page_Load ? si lo haces recuerdaponer ese codigo dentro del

    if(!IsPostBack){
    
       txtSearch.Value = "";
    
    }

    sino en cada evento se asignara el textbox

    Usas el UpdatePanel ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 8 de mayo de 2017 13:09
  • Para obtener el valor de un textbox yo uso el:
    string valorasignado = txtSearch.Text;

    Cabe resaltar que el textbox siempre tiene que estar dentro del <form> para evitar agregar codigo en el page load, si no me equivoco.


    Del Castillo Victor Andres - Lima Peru


    lunes, 8 de mayo de 2017 15:15
  • Para obtener el valor de un textbox yo uso el:
    string valorasignado = txtSearch.Text;

    Ojo, eso solo vale para los controles <asp:TextBox>. Si es un <input> con runat="server", como ocurre en este caso, entonces hay que usar .Value en lugar de .Text.

    lunes, 8 de mayo de 2017 17:22