Je nejaky zpusob, jak se zbavit atributu STYLE , u webcontrolu asp:Image?
mi generuje tohle HTMLKód:<asp:Image id="obrazek" runat="server" />
a to mi pak nefunguje CSS.HTML kód:<img id="obrazek" style="border-width:0px;" />
Printable View
Je nejaky zpusob, jak se zbavit atributu STYLE , u webcontrolu asp:Image?
mi generuje tohle HTMLKód:<asp:Image id="obrazek" runat="server" />
a to mi pak nefunguje CSS.HTML kód:<img id="obrazek" style="border-width:0px;" />
S asp nemam vubec zkusenosti, ale nepomohlo by neco ve smyslu:
<asp:Image id="obrazek" style="" runat="server" />
Nepomuze :-(
Ja to obesel pres asp:Literal a definoval jsem img rucne, ale v pripade repeateru to je horsi.
Toto jsou dalsi odpovedi:
aCitace:
Dobry den,
Dalsim resenim muze byt prepsani metody AddAttributesToRender, ve které
zamezíte renderování atributů z bázové třídy a vyrenderujete jen své vlastní
(+ musíte ještě zajistit vyrenderovani atributu z tridy WebControl).
Nebo muzete napsat vlastni tridu Image...
Prijemny den
Rene Stein, Microsoft C# MVP
http://blog.renestein.net
Citace:
Níže uvedené bude sice nejspíš fungovat, ale je to takový divný, nečistý. To asi sám vidíte, proto se ptáte.
Já osobně bych použil <image runat="server">, protože ten tam ten border nepřidává.
Jinak ten border se tam dostává v metodě AddAttributesToRender, která je virtuální a můžete ji přepsat. Bohužel to nejde moc efektivně obejít jednodušeji, protože metoda mj. dělá:
No a pokud to chcete udělat nějak plošně pro celý web, všechny controly Image, tak doporučuji udělat ControlAdapter.Kód:if (!this.BorderWidth.IsEmpty)
{
return;
}
if (base.EnableLegacyRendering)
{
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0", false);
}
else
{
writer.AddStyleAttribute(HtmlTextWriterStyle.BorderWidth, "0px");
}
Robert Haken
MVP ASP/ASP.NET
A stejny problem je i u weboveho ovladaciho prvkuTady jsem to vyresil taktoKód:<asp:ImageButton id="CZ" ImageUrl="~/images/vlajka_cz.gif" Width="30"
Height="20" runat="server" OnCommand="Language_Command" CommandName="cs-cz">
Podotykam, ze byl problem pri validaci pres http://validator.w3.org/, kde jejich User Agent ma nastavenou nejakou starou verzi a ASP.NET generuje ImageButton jakoKód:<asp:LinkButton id="CZ" runat="server" OnCommand="Language_Command"
CommandName="cs-cz"><img class="no-border" src="images/vlajka_cz.gif"
width="30" height="20" alt="Česky" runat="server" /></asp:LinkButton>
ktery neni kvuli border="0" XHTML validni, i kdyz tam tento atribut neni definovan.HTML kód:<img src="images/vlajka_cz.gif" width="30" height="20" border="0" />
Pro novejsi browsery generuje server jiz atribut style="border-width:0px", coz je jiz v poradku.
Ale i presto mi to prijde u obou webovych ovladacich prvku jaku bug, protoze pri standardnim pouziti nelze nastavit border pres CSS, protoze prima hodnota atributu border nebo style ma vyssi prioritu nez class.