Principales respuestas
Ejecutar evento al presionar enter en TextBox

Pregunta
-
Buenos días, deseaba ejecutar en evento al presionar enter en un textbox, dicho campo de texto esta en el masterpage que busca algo en especifico, el código lo tengo de la siguiente forma:
<asp:Panel ID="Panel1" runat="server" CssClass="Pnlbusqueda" DefaultButton="btnBuscar" >
<asp:TextBox ID="searchfield" runat="server" value="Enter a keyword" Height="16px" Width="270px" ></asp:TextBox>
<asp:Button ID="btnBuscar" runat="server" OnClick="btnBuscar_Click" Visible="False" />
</asp:Panel>el evento del boton:
protected void btnBuscar_Click(object sender, EventArgs e)
{
string neces = searchfield.Text;
Response.Redirect("/Busqueda.aspx?b=" + neces);
}No funciona, puse un punto de interrupción no ingresa al método, o estoy haciendo mal algo agradeceria su opinion.
- Editado Luis Vivanco lunes, 4 de mayo de 2015 15:01
Respuestas
-
Hola Luis Vivanco veo que ese evento le pertenece a un boton pero tampoco veo en tu control TextBox que este asignado dicho evento en su Evento KeyPress, podria revisar este articulo:
KeyPress Event of TextBox in ASP.NET
Otra solución seria que uses TextChanged.
- Marcado como respuesta Luis Vivanco martes, 5 de mayo de 2015 1:30
-
hola
no definas ningun DefaultButton en la pagina y prueba capturar el keyup por medio de jquery
Trigger a button click with JavaScript on the Enter key in a text box
de esta forma podrias detectar el enter en ese textbox y lanzar el click de un boton usando el selector de jquery
Nota. si usas controles de asp.net recuerda aplicar un selector que sea
$("[id*='textbox1']").keyup(....
recuerda que asp.net cambia el nombre de los controles por eso buscas por aproximacion usando el *=
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Luis Vivanco martes, 5 de mayo de 2015 1:29
-
Realiza lo siguiente entonces en la misma pagina agregas el siguientel código de javascript
<!--Esto es para que el cliente de enter lo que hace es buscar el boton buscar y da click internamente-->
<script lang="javascript" type="text/javascript">
function darclick(field, event) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) {
var obj = document.getElementById("<%=btnBuscar.ClientID%>");
obj.click();
}
}function Enter(field, event) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) {
var i;
for (i = 0; i < field.form.elements.length; i++)
if (field == field.form.elements[i])
break;
i = (i + 1) % field.form.elements.length;
field.form.elements[i].focus();
return false;
}
else
return true;}
</script>
en el cuadro de texto agregas lo siguiente
<asp:Textbox " ID="searchfield" onKeypress="return Enter(this,event)" onKeydown="return darclick(this, event)" runat="server"></asp:Textbox>
ProgramacionYa.net
Si pequeña es la Patria, uno grande la sueña
Rubén Darío
Principe de las letras Castellanas
Poeta Nicaragüense
- Propuesto como respuesta Capacitaciones Corporativas lunes, 4 de mayo de 2015 21:48
- Marcado como respuesta Luis Vivanco martes, 5 de mayo de 2015 1:30
Todas las respuestas
-
Hola Luis Vivanco veo que ese evento le pertenece a un boton pero tampoco veo en tu control TextBox que este asignado dicho evento en su Evento KeyPress, podria revisar este articulo:
KeyPress Event of TextBox in ASP.NET
Otra solución seria que uses TextChanged.
- Marcado como respuesta Luis Vivanco martes, 5 de mayo de 2015 1:30
-
hola
no defines un boton por defecto de la pagina?
ASP.NET 2.0 - Enter Key - Default Submit Button
si defines esto al presionar enter deberia lanzar el evento de ese boton
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Hola, implemente algo parecido al link que me recomendo y lo tengo de la siguiente manera:
<form id="frminicio" runat="server" defaultbutton="btnBuscar">
<asp:Panel ID="Panel1" runat="server" CssClass="Pnlbusqueda" DefaultButton="btnBuscar" >
<asp:TextBox ID="txtbus" runat="server" Height="16px" Width="270px" ></asp:TextBox>
<asp:Button ID="btnBuscar" runat="server" OnClick="btnBuscar_Click" Visible="False" />
</asp:Panel></form>
protected void Page_Load(object sender, EventArgs e)
{
Panel1.DefaultButton = btnBuscar.ID;
}
protected void btnBuscar_Click(object sender, EventArgs e)
{
string neces = txtbus.Text;
Response.Redirect("/Busqueda.aspx?b=" + neces);
}Pero no me funciona, o esque el panel ya no lo debo utilizar.
Trato de implementarlo en el masterpage para una barra de busqueda
- Editado Luis Vivanco lunes, 4 de mayo de 2015 19:17
-
hola
no definas ningun DefaultButton en la pagina y prueba capturar el keyup por medio de jquery
Trigger a button click with JavaScript on the Enter key in a text box
de esta forma podrias detectar el enter en ese textbox y lanzar el click de un boton usando el selector de jquery
Nota. si usas controles de asp.net recuerda aplicar un selector que sea
$("[id*='textbox1']").keyup(....
recuerda que asp.net cambia el nombre de los controles por eso buscas por aproximacion usando el *=
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Marcado como respuesta Luis Vivanco martes, 5 de mayo de 2015 1:29
-
Realiza lo siguiente entonces en la misma pagina agregas el siguientel código de javascript
<!--Esto es para que el cliente de enter lo que hace es buscar el boton buscar y da click internamente-->
<script lang="javascript" type="text/javascript">
function darclick(field, event) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) {
var obj = document.getElementById("<%=btnBuscar.ClientID%>");
obj.click();
}
}function Enter(field, event) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) {
var i;
for (i = 0; i < field.form.elements.length; i++)
if (field == field.form.elements[i])
break;
i = (i + 1) % field.form.elements.length;
field.form.elements[i].focus();
return false;
}
else
return true;}
</script>
en el cuadro de texto agregas lo siguiente
<asp:Textbox " ID="searchfield" onKeypress="return Enter(this,event)" onKeydown="return darclick(this, event)" runat="server"></asp:Textbox>
ProgramacionYa.net
Si pequeña es la Patria, uno grande la sueña
Rubén Darío
Principe de las letras Castellanas
Poeta Nicaragüense
- Propuesto como respuesta Capacitaciones Corporativas lunes, 4 de mayo de 2015 21:48
- Marcado como respuesta Luis Vivanco martes, 5 de mayo de 2015 1:30
-
Ya lo probe y el problema que tenia era que el boton visible=false, cambie eso y todo salio bien.
Gracias a todos por las sugerencias.
- Editado Luis Vivanco martes, 5 de mayo de 2015 1:29