Frage

Die folgende funktioniert gut in Chrome.

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

Und hier ist die CSS für Button und seine Unterklasse.

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

Wie Sie sehen können, nichts Besonderes; nur Farben und schöne Dinge.
Ich klicke auf den blauen Button Bearbeiten und es löst das OnClick Postbacks ganz gut .... in Chrome!
Aber wenn ich das gleiche in IE8 zu tun, es tut einfach nichts; nicht einmal einen Klick erfassen.

Um die Hilfe Pinpoint das Problem, entfernte ich den Tag und hielt gerade das Wort „Bearbeiten“, und es funktioniert gut in IE8 als einfacher unterstrichenen Link; die Postbacks Feuer.

So, Warum kann IE8 akzeptieren nichts innerhalb Linkbutton?

War es hilfreich?

Lösung

Warum einen Linkbutton verwenden, wenn Sie einen Postback und aussieht wie ein Knopf zur gleichen Zeit behandeln müssen? Warum es nicht nur eine Taste machen? Es scheint mir, dass der einzige Grund, warum man zu verwenden, um über die andere Erscheinung ist. Funktionell, sie sind beide angeblich einen Postback auslösen.

Andere Tipps

Was Sie tun, ist nicht etwas, was Sie sind sollte zu tun, aber ich würde sagen, dass IE ist wahrscheinlich derjenige verhalten am nächsten ‚richtig‘ hier.

Sie sollten nicht verschachtelt Schaltfläche Elemente innerhalb anderer Elemente, die Links zur Verfügung stellen. Sie können einfach die button aus dem Inneren des LinkButton entfernen, bringen Sie die OnClick ihm stattdessen das Styling Arbeit machen, und es wird gut sein.

Der Grund, warum ich sagen, dass ich denke, IE verhält näher an ‚richtig‘ ist, weil er tut, was Sie auf dem innersten Tag definiert haben; Das ist nichts. (Sie haben keine Aktionen mit dem button Element befestigt ist, in Wirklichkeit). Aber wirklich, es ist nicht etwas, das man sowieso in HTML tun sollte, da ich nicht glaube, das Verhalten in erster Linie definiert ist.

Was wollen Sie hier erreichen?

Sie haben eine serverseitigen Link-Button, mit einer verschachtelten HTML-Schaltfläche?

Ein Linkbutton ist nützlich, wenn Sie ein Hyperlink in der Lage sein ein Postback auszuführen.

Haben Sie einen Blick auf die gerenderte HTML? Ich weiß nicht, ob eine Schaltfläche innerhalb eines Anker-Tag mit noch gültigen HTML.

Wenn Sie die Postbacks wollen durch ein bestimmtes serverseitige Ereignis behandelt werden, verwenden Sie einfach eine ASP:. Taste

Wenn Sie nicht, verwenden Sie einfach eine normale HTML-Taste.

Sie können mit CssClass:

<asp:TemplateField HeaderText="Opciones">
    <ItemTemplate>
    <asp:LinkButton runat="server" Text="Hola!" CommandName="Deshabilitar" 
        CssClass="btn btn-primary"
        CommandArgument='<%# Item.Id %>' />
    </ItemTemplate>
</asp:TemplateField>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top