2011-11-23 21 views
5

Estoy usando formularios asp y quería saber si es posible reemplazar los botones estándar con elementos HTML diseñados con CSS.¿Es posible reemplazar un botón asp: con un elemento HTML

Mi página de inicio de sesión utiliza un botón estándar

<asp:Button ID="LoginButton" runat="server" Text="Login" 
    onclick="LoginButton_Click" /> 

relacionado con código subyacente (C#), que realiza la comprobación de inicio de sesión.

He visto algunos botones bonitos implementados con el elemento HTML <button> y con estilo con CSS que puede tener características como imágenes y resaltado en rollo. El HTML básico es el siguiente

<button type="submit" class="positive" onclick ="..."> 
    <img src="/icons/tick.png" alt=""/> 
    Login 
</button> 

que he visto otra pregunta discutir el Difference between asp:button and html's button por lo que entiendo el elemento <button> no es una gota en el reemplazo pero me gustaría saber si el asp:button puede ser reemplazado y todavía llamar al código LoginButton_Click C# detrás?

EDIT:
Aunque estoy usando ASP no me importa usar algo de JavaScript del lado del cliente si es necesario.

Los botones que vi lo que me hizo pensar en esto se encuentran aquí: Rediscovering the Button Element

EDIT 2: Probé la answer from XIII utilizando el control asp LinkButton y que trabajaron, se representa el botón como quería y activar C# cuando se hace clic

<asp:LinkButton ID="LoginBtn" CssClass="button positive" 
     OnClick="LoginButton_Click" runat="server"> 
    <img src="/icons/tick.png" alt=""/> 
    Login 
</asp:LinkButton> 

Javascript se inserta en la página (como se ha mencionado por Curt), que no era un problema para mí, pero puede ser para otras personas; pero como el asp:loginview y otros controles asociados con la autenticación de formularios ya necesitan javascript, no estoy seguro de que esto sea un problema con la solución.

decidí aceptar la respuesta de jwiscarson ya que esto es una implementación más limpia y, a pesar de lo que pensaba, <button> puede ser una gota en el reemplazo para <asp:button>

Respuesta

2

La respuesta a su pregunta:

si el asp: botón puede ser reemplazado y aún llamar al código LoginButton_Click C# detrás?

es sí. Si usted tiene un botón:

<button type="submit" id="submit" class="positive" runat="server">Submit</button> 

El atributo tiene que establecer es noonclick, pero onserverclick. También podría hacer algo como:

protected override OnInit(EventArgs e) 
{ 
    submit.ServerClick += new EventHandler(submit_ServerClick); 
} 

Si necesita definir el peinado en ese botón, creo que la mejor manera de abordar esto es a través de clases CSS como que tiene en su ejemplo.

1

Usted puede configurar CSS clase a través de la propiedad de cssClass<asp:Button/>. Sin embargo, puede establecer el atributo runat="server" y onserverclick="LoginButton_Click" en <button/>.

+2

Las opciones de estilo para un '' son bastante limitadas. –

1

Un enfoque alternativo sería utilizar el control LinkButton y el estilo completamente con CSS. Solíamos hacerlo para cierto proyecto en el pasado. Funcionó muy bien para nuestro cliente.

la propiedad de interés si CssClass

+1

El único problema con esto es que LinkButtons no funciona sin javascript. OP no ha especificado esto, pero vale la pena tenerlo en cuenta. – Curt

+0

@Curt - No me importa usar javascript, estoy interesado principalmente en lograr un bonito botón. – Tony

0

Se puede usar el botón HTML si lo desea, y aprender cómo llamar al método __doPostBack() con los argumentos adecuados. Los botones de Asp.Net y los botones HTML son prácticamente los mismos en lo que respecta a la forma en que se representan en el cliente.

0

Como se ha publicado aquí, ya se pudo diseñar el HTML representado por asp:button o utilizar otro control asp.Su asp:button se representará como <input type="submit"> con opciones CSS posiblemente más limitadas que una etiqueta <button>.

De algunas google creo que es posible obtener una etiqueta <button> devengados y no se ve como un ejercicio no trivial ver How can I use the button tag with ASP.NET?

+0

Un enlace interesante, para toda mi búsqueda de SO antes de publicar mi pregunta ¡No logré encontrar esa! Gracias, voy a echar un vistazo. – Tony

Cuestiones relacionadas