Pregunta

La siguiente funciona bien en Chrome.

<asp:LinkButton runat="server" ID="lbEdit" OnClick="lbEdit_Click">
    <button type="button" class="edit">
         Edit
    </button>
</asp:LinkButton>

Y aquí está el CSS para el botón y su subclase.

button
{    
    padding: 3px;
}
button.edit 
{
    background:#3f6096;
    border:none;
    font:10px verdana;
    color:#fff;
    width:71px;
    margin-top:3px;
}

Como se puede ver, nada especial; sólo los colores y cosas bellas.
Hago clic en el botón azul de edición y se dispara la devolución de datos OnClick bien .... en Chrome!
Pero si hago lo mismo en IE8, simplemente no hace nada; ni siquiera detectar un clic.

Para ayudar a identificar el problema, me quita la etiqueta y se mantiene sólo la palabra "Editar", y funciona muy bien en IE8 como un simple enlace subrayado; los fuegos de devolución de datos.

Así que, ¿Por qué no puede aceptar cualquier cosa dentro de IE8 LinkButton?

¿Fue útil?

Solución

¿Por qué utilizar un LinkButton si tiene que manejar una devolución de datos y se ven como un botón al mismo tiempo? ¿Por qué no hacer que sea sólo un botón? Me parece que la única razón para usar uno sobre el otro es la apariencia. Funcionalmente, se supone, tanto para desencadenar una devolución de datos.

Otros consejos

Lo que está haciendo no es algo que está supuesta que hacer, pero yo diría que IE es probablemente el más cercano a comportarse 'correctamente' aquí.

No debe dar elementos del botón de nido dentro de otros elementos que proporcionan enlaces. Usted puede simplemente eliminar el button desde el interior del LinkButton, conecte el OnClick a su lugar, hacer que el estilo, y va a ser buena.

La razón por la que digo que creo que IE se está comportando más cerca de 'correctamente' es porque está haciendo lo que se ha definido en la etiqueta interna; que no es nada. (No ha colocado ninguna acción para el elemento button, en realidad). Pero, en realidad, no es algo que debe hacer en HTML de todos modos, ya que no creo que el comportamiento se define en el primer lugar.

¿Qué está tratando de lograr aquí?

Tiene un botón de enlace del lado del servidor, con un botón HTML anidado?

A LinkButton es útil cuando se desea una hipervínculo para poder realizar una devolución de datos.

¿Ha tenido una mirada en el HTML representado? No sé si es conveniente tener un botón dentro de una etiqueta de anclaje es aún HTML válido.

Si desea que la devolución de datos a ser manejado por un evento del lado del servidor en particular, sólo tiene que utilizar un ASP:. Botón

Si no lo hace, sólo tiene que utilizar un botón HTML normal.

Se puede utilizar CssClass:

<asp:TemplateField HeaderText="Opciones">
    <ItemTemplate>
    <asp:LinkButton runat="server" Text="Hola!" CommandName="Deshabilitar" 
        CssClass="btn btn-primary"
        CommandArgument='<%# Item.Id %>' />
    </ItemTemplate>
</asp:TemplateField>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top