Question

Ce qui suit fonctionne très bien dans Chrome.

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

Et voici le CSS pour le bouton et sa sous-classe.

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

Comme vous pouvez le voir, rien de spécial; seulement les couleurs et les belles choses.
Je clique sur le bouton Modifier le bleu et il déclenche le postback Surclic très bien .... Chrome!
Mais si je fais la même chose dans IE8, il n'a tout simplement rien; ne détecte même pas un clic.

Pour aider à identifier le problème, je retire l'étiquette et a gardé juste le mot « Modifier », et cela fonctionne très bien dans IE8 comme un simple lien souligné; les incendies de publication.

Alors, pourquoi ne peut accepter quoi que ce soit au sein IE8 LinkButton?

Était-ce utile?

La solution

Pourquoi utiliser un LinkButton si vous avez besoin pour gérer un postback et ressembler à un bouton en même temps? Pourquoi ne pas faire juste un bouton? Il me semble que la seule raison d'utiliser l'un sur l'autre aspect. Fonctionnellement, ils sont tous deux censés déclencher un postback.

Autres conseils

Ce que vous faites est pas quelque chose que vous êtes supposé à faire, mais je dirais que IE est probablement celui comportant le plus proche de « correctement » ici.

Vous ne devriez pas bouton imbriquer des éléments à l'intérieur d'autres éléments qui fournissent des liens. Vous pouvez simplement supprimer le button à l'intérieur du LinkButton, fixez le OnClick au lieu, faire le travail de style, et ce sera bon.

La raison pour laquelle je dis que je pense que IE se comporte plus proche de « correctement » est parce qu'il fait ce que vous avez défini sur l'étiquette la plus intérieure; qui est rien. (Vous n'avez pas attaché toute action à l'élément button, en réalité). Mais vraiment, ce n'est pas quelque chose que vous devez faire en HTML de toute façon, comme je ne pense pas que le comportement est défini en premier lieu.

Qu'est-ce que vous essayez d'atteindre ici?

Vous avez un bouton de lien côté serveur, avec un bouton HTML imbriqué?

Un LinkButton est utile lorsque vous souhaitez un lien hypertexte pour pouvoir pour effectuer une publication.

Avez-vous un regard sur le rendu HTML? Je ne sais pas si avoir un bouton à l'intérieur d'une balise d'ancrage est encore valide HTML.

Si vous voulez que le postback à traiter par un événement côté serveur particulier, il suffit d'utiliser un ASP. Bouton

Si vous ne faites pas, il suffit d'utiliser un bouton HTML standard.

Vous pouvez utiliser CssClass:

<asp:TemplateField HeaderText="Opciones">
    <ItemTemplate>
    <asp:LinkButton runat="server" Text="Hola!" CommandName="Deshabilitar" 
        CssClass="btn btn-primary"
        CommandArgument='<%# Item.Id %>' />
    </ItemTemplate>
</asp:TemplateField>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top