2011-10-03 18 views
66

Hay un cuadro de texto en una página de contenido. Cuando el usuario presiona Intro en ese cuadro de texto, estoy intentando disparar un botón 'Enviar' en esta página de contenido. Me gustaría disparar el evento de ese botón en particular.cómo establecer una 'entrada' predeterminada en un botón determinado

En su lugar, hay un cuadro de texto de búsqueda & en la parte superior de la página desde una página maestra, y el evento de este botón de búsqueda se desactiva.

¿Cómo puedo controlar el apagado del botón de envío de esta página de contenido, en lugar del botón de búsqueda de la página maestra?

Estoy usando Ektron CMS para mi gestión de contenido.

+0

¿Tiene un panel en la página de contenido, tal vez podría establecer el botón predeterminado como el enviar en ese caso – V4Vendetta

+0

Gracias V4Vendetta, sí, resolví esto mediante la adición de un panel y el establecimiento del botón predeterminado para enviar – Ron

Respuesta

81

La forma más fácil es poner los campos y botones en el interior de un panel y establecer el botón predeterminado para el botón que desee para ser activado en enter.

<asp:Panel ID="p" runat="server" DefaultButton="myButton"> 
    <%-- Text boxes here --%> 
    <asp:Button ID="myButton" runat="server" /> 
</asp:Panel> 
+1

Gracias Kirk, la solución perfecta, ¡funcionó bien para mí! – Ron

+0

Tenga en cuenta que esta solución se basa en JavaScript, como algo como 'onkeypress = "javascript: volver WebForm_FireDefaultButton (evento, ' ctl00_MainContentPlaceHolder_btnSave ')">' se añade a su página –

+0

solución perfecta - Gracias Kirk – Sensa

14

Puede usar la propiedad DefaultButton en un control del lado del servidor form o control Panel. En su caso, el grupo de los controles juntos en un Panel que debe disparar el mismo botón:

<asp:Panel ID="SearchBox" runat="server" DefaultButton="BtnSearch"> 
    ... 
    <asp:Button ID="BtnSearch" runat="server" Text="Search!" /> 
</asp:Panel> 
.... 
<asp:Panel ID="UserPanel" runat="server" DefaultButton="BtnUserSubmit"> 
    ... 
    <asp:Button ID="BtnUserSubmit" runat="server" Text="Submit" /> 
</asp:Panel> 
+0

Gracias Mellamokb, asp: Panel funcionó !!! – Ron

29

si es necesario hacerlo desde código, utilice

Me.Form.DefaultButton = Me.btn.UniqueID 

Dónde btn es su botón de control.

+0

Si está en un control, funciona Me.Page.Form.DefaultButton. – NYCdotNet

3

Ahora puede utilizar la propiedad UseSubmitBehavior desactivar todos los botones que no desea para disparar al golpear submit (echa un vistazo a la documentación para obtener más información)

<asp:Button ID="BtnNotToFIre" runat="server" Text="Search" UseSubmitBehavior="false" /> 
+1

¡Estrella absoluta! ¡Esto es lo que necesito! –

+0

Y no requiere elementos html/asp.net adicionales que pueden no funcionar con el diseño de la página. – Walter

Cuestiones relacionadas