2010-02-06 20 views

Respuesta

1

Nada que ver con las páginas maestras: consulte aquí cómo los navegadores web interpretan los formularios.

http://geekswithblogs.net/ranganh/archive/2006/04/12/74951.aspx

Personalmente me gustaría adjuntar el formulario en su propio panel de control y establecer la propiedad defaultButton a la del botón de enviar.

NOTA: Esto solo funcionará en ASP.NET 2.0 y superiores.

+0

En realidad, en el enlace que publicaste, varias personas comentaron sobre problemas con las páginas maestras y el botón predeterminado –

1

En mi humilde opinión, existe un control integrado diseñado para el inicio de sesión llamado como LoginView. Se integra en su página maestra o en cualquier otra página y podría proporcionar el uso completo del sistema de autenticación. Aquí está el código para él

<asp:LoginView ID="LoginView1" runat="server"> 
</asp:LoginView> 

Asp.Net proporciona un marco completo para la autenticación y autorización de una aplicación. Recomendaría echarle un vistazo si está a punto de implementar uno para su aplicación y no lo ha revisado como una opción.

EDIT: si quieres un botón para ser lugar sobre la página principal, arrastrar y soltar el botón, como lo hacemos para un formulario web normal y Implementar suceso siguiente:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     Response.Redirect("MyApplication/SomePage.aspx"); 
    } 

creo que sirve

+0

No había pensado en eso; buena sugerencia. –

+0

no solo página de inicio de sesión algunas otras páginas también –

+0

¡Solo tiene que arrastrar y soltar un botón de control al igual que hacemos para las formas web! e implementar el evento Haz clic para verlo. Ver Editar –

17
Page.Form.DefaultButton = crtlLoginUserLogin.FindControl("LoginButton").UniqueID 

o simplemente

Page.Form.DefaultButton = LoginButton.UniqueID 

Esto funcionará.

+0

Estoy usando la página maestra Sr. Five Tools, ¿cómo es posible –

+2

puede utilizar el código anterior en el evento de carga de página de su página de inicio de sesión, independientemente de la página maestra que esté relacionada con ella. El ctrlLoginUserLogin que menciono arriba es un asp: inicie sesión en una página en una de mis aplicaciones. Funciona bien. – FiveTools

+0

me salvaste :) +1 –

3

Si desea establecer un botón predeterminado en una página maestra, y el botón está en una página de contenido o un control de usuario, no puede establecer esto directamente en la marca de página maestra.

<form id="form1" runat="server" defaultbutton="MyButton" > 

generará el error siguiente:

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

La solución para esto es para establecer el botón predeterminado durante el Page_Load de su Contenido/Control de Usuario:

protected void Page_Load(object sender, EventArgs e) 
     { 
      Button myButton = (Button)FindControl("MyButton"); 

      Page.Form.DefaultButton = myButton.UniqueID; 
     } 
1

La versión VB de esto es la siguiente:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load  
     'cast the master page form to set the default values for the Default button and Default focus' 
     Dim myForm As HtmlForm = TryCast(Me.Master.FindControl("myMasterForm"), HtmlForm) 
     myForm.DefaultButton = Me.btnAdd.UniqueID 
     myForm.DefaultFocus = Me.txtMyTextbox.UniqueID 
    End Sub 
Cuestiones relacionadas