Pregunta

Tengo un cuadro de búsqueda que no tiene un botón de envío, necesito poder pulsar Intro y luego ejecutar un método, ¿cómo hago esto?

¿Fue útil?

Solución

También puedes hacer algo tan simple como esto con CSS:

<asp:Panel DefaultButton="myButton" runat="server">
    <asp:TextBox ID="myTextBox" runat="server" />
    <asp:Button ID="myButton" runat="server" onclick="myButton_Click" style="display: none; "  />
</asp:Panel>

El panel puede o no ser necesario dependiendo de su implementación y los controles que lo rodean, pero esto funciona y hace una devolución para mí.

Otros consejos

Puede agregar un botón oculto a la página y conectar su método al evento de clic de ese botón. Luego, agregue un poco de javascript para activar la acción de devolución de ese botón cuando presiona Intro dentro del cuadro de texto.

this.myTextBox.Attributes.Add(
    "onkeydown", 
    "return keyDownHandler(13, 'javascript:" 
     + this.Page.ClientScript.GetPostBackEventReference(this.myButton, string.Empty).Replace("'", "%27") 
     + "', event);");

(También puede reemplazar el código duro 13 con Windows.Forms.Keys . Ingrese, si prefiere una versión más fácil de leer.)

Donde keyDownHandler es una función de JavaScript como esta:

function keyDownHandler(iKeyCode, sFunc, e) { 
    if (e == null) { 
        e = window.event; 
    } 
    if (e.keyCode == iKeyCode) { 
        eval(unescape(sFunc)); return false; 
    } 
}

Nota, esto se basa en la implementación de DotNetNuke 's utilidad web ClientAPI .

Use el evento TextChanged y establezca la propiedad AutoPostBack en true.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top