2009-04-25 11 views
4

ich benutze ein asp: ImageButton Server-Steuerelement; Ich setze das CssClass-Attribut auf meinen CSS-Stil, in dem ich Grenze definiert: solid 1px rot;ASP.NET Wie 'Stil' Attribut aus Eingangstyp = 'Bild' Steuerelement zu entfernen?

.NET automatisch macht ein Inline 'Stil' Attribut wie folgt:

style="border-width:0px;" 

Q1. Kann ich den automatischen Inline-Stil entfernen? z.B. auf dem PreRender vielleicht den HTML-Code einsehen und bearbeiten? Ich habe versucht Attribute.Remove ("Stil"), aber das funktioniert nicht (seltsamerweise auch nicht Fehler), und ich erinnere mich, irgendwo zu lesen, ich kann nur die Attribute entfernen, die ich manuell hinzugefügt habe.

Meine Problemumgehung war BorderWidth = 1px -Eigenschaft in der Aspx-Seite zuweisen, aber was ist der Sinn in eine CssClass -Eigenschaft bereitzustellen, wenn es ohnehin überschrieben wird (automatisch!) Bug oder Feature?

Antwort

3

Der Grund, warum sie dies tun, ist auf ein Vermächtnis von HTML, wo Standardbilder Grenzen haben, wenn sie haben Sie einen <a> Tag, der sie einwickelt. In den meisten Situationen wollen die Leute diese Grenzen nicht, weshalb ASP.NET das tut, was sie tun. Um dies zu umgehen, können Sie die folgenden in Ihrem Stylesheet tun (vorausgesetzt, Sie setzen cssclass='redborderbutton'):

.redborderbutton img 
{ 
    border:solid 1px red !important; 
} 
0

Post-Render können Sie es mit JQuery entfernen.

Ersetzen Sie die "img" mit einem CSS-Stil-Selektor - aber behalten Sie die Anführungszeichen.

Eigentlich mache ich das viel in asp.net zu „reparieren“ die Standard-Rendering von asp.net

1

Sie könnten ein HTML-Server-Steuerelement verwenden.

<input id="Image1" runat="server" name="ImageButton1" src="images\image.jpg" type="image" /> 
+0

Es war nah genug zu dem, was ich schrieb ... – jrcs3

0

ASP ist der hackiest Satz von Tags überhaupt. Auch wenn Border "Legacy" ist, kann das in CSS angesprochen werden.

Verwandte Themen