Domanda

Di seguito funziona bene in Chrome.

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

Ed ecco il CSS per tasto e la sua sottoclasse.

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

Come si può vedere, niente di speciale; solo i colori e le cose belle.
Clicco sul pulsante blu Modifica e spara il postback OnClick bene .... in Chrome!
Ma se faccio lo stesso in IE8, semplicemente non fa nulla; non ha nemmeno rilevare un clic.

Per aiutare a individuare il problema, ho rimosso il tag e mantenuto solo la parola "Modifica", e funziona bene in IE8 come un semplice collegamento sottolineato; i fuochi postback.

Quindi, perché non può accettare nulla IE8 entro LinkButton?

È stato utile?

Soluzione

Perché usare un LinkButton se è necessario gestire un postback e guardare come un pulsante, allo stesso tempo? Perché non fare semplicemente un bottone? Mi sembra che l'unica ragione per usare uno sopra l'altro è l'aspetto. Funzionalmente, sono entrambi dovrebbero innescare un postback.

Altri suggerimenti

Quello che state facendo non è qualcosa che si sono dovrebbe per fare, ma direi che IE è probabilmente quella di comportarsi più vicina alla 'corretta' qui.

Non si dovrebbe pulsante elementi nido all'interno di altri elementi che forniscono collegamenti. Si può semplicemente rimuovere il button dall'interno del LinkButton, collegare l'OnClick ad esso, invece, rendere il lavoro styling, e sarà bene.

Il motivo dico che penso che IE si comporta in modo più vicino alla 'corretta' è perché sta facendo quello che è stato definito sul tag più interno; che non è altro. (Non si è collegata alcuna azione ai elemento button, in realtà). Ma in realtà, non è qualcosa che si dovrebbe fare in HTML in ogni caso, come non credo che il comportamento è definito in primo luogo.

Che cosa stai cercando di ottenere qui?

Si dispone di un pulsante di collegamento sul lato server, con un pulsante HTML annidato?

Un LinkButton è utile quando si desidera un Collegamento per essere in grado di eseguire un postback.

Hai avuto uno sguardo al rendering HTML? Non so se avere un pulsante all'interno di un tag di ancoraggio è ancora valida HTML.

Se si desidera che il postback per essere gestito da un particolare evento lato server, basta usare un ASP:. Pulsante

Se non, basta usare un pulsante HTML regolare.

È possibile utilizzare CssClass:

<asp:TemplateField HeaderText="Opciones">
    <ItemTemplate>
    <asp:LinkButton runat="server" Text="Hola!" CommandName="Deshabilitar" 
        CssClass="btn btn-primary"
        CommandArgument='<%# Item.Id %>' />
    </ItemTemplate>
</asp:TemplateField>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top