2011-01-31 13 views
5

El problema que estoy tratando de resolver:Configuración DefaultButton a tiros button.UniqueID excepción

tengo varios cuadros de texto en un asp:Panel. Cuando el usuario marque Enter desde cualquiera de esos cuadros, quiero que el formulario se envíe como si hubiera hecho clic en btnAddTag. (Cuando el cursor no está en esas cajas, tengo un defecto diferente botón de enviar.)

El aspx:

<asp:Panel id="thePanel" runat="server"> 
    <asp:Button ID="btnAddTag" Text="Add Tag" runat="server" /> 
</asp:Panel> 

El vb:

tagPanel.DefaultButton = btnAddTag.UniqueID 

La excepción:

El DefaultButton de 'tagPanel' debe ser el ID de un control de tipo IButtonControl.

El valor de btnAddTag.UniqueID es ctl00$phMain$btnAddTag (hay una página maestra, en esta sección se llama phMain).

También he intentado CType(tagPanel.FindControl("btnAddTag"), Button).UniqueID.

+0

en mi situación, Me faltaba un '' externo en el que no sabía que lo necesitaba. Solo pensé en compartir – jbutler483

Respuesta

3

hacer:

tagPanel.DefaultButton = btnAddTag.ID 

información más aquí: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

+0

¡Eso funcionó! Aunque no tengo idea de por qué, en cualquier otro lugar parece que necesito UniqueID ... – egrunin

+0

Debe usar una "ruta" relativa. Es decir, use una cadena similar a UniqueID para que proporcione una ruta desde el contenedor hasta el control secundario. Nunca he visto esto documentado en ninguna otra parte que no sea en las publicaciones de preguntas y respuestas. http://connect.microsoft.com/VisualStudio/feedback/details/103530/defaultbutton-in-panel-for-wizard-errs –

0

Se debe ajustar el ID del mando no UniqueID:

tagPanel.DefaultButton = btnAddTag.ID

Cuestiones relacionadas