2009-04-25 102 views
4

我正在使用一個asp:ImageButton服務器控件;我將CssClass屬性設置爲CSS樣式,其中我定義了border:solid 1px red;ASP.NET如何從輸入type ='image'控件中刪除'style'屬性?

.NET 自動呈現一個內聯 '風格' 屬性如下:

style="border-width:0px;" 

Q1。我可以刪除自動內聯「樣式」嗎?例如在PreRender上檢查HTML並編輯它? 我已經嘗試過AttributesRemove(「樣式」),但這並不起作用(奇怪的是,也沒有錯誤),我記得在某處閱讀我只能刪除手動添加的屬性。

我的解決方法是在aspx頁面中分配BorderWidth = 1px屬性,但是如果它將被覆蓋(自動!),提供一個CssClass屬性有什麼意義?Bug或Feature?

回答

3

他們這樣做的原因是由於HTML的遺產,其中圖像默認時,他們有邊界有一個<a>標籤包裝它們。在大多數情況下,人們不需要這些邊界,這就是爲什麼ASP.NET做他們所做的事情。爲了解決這個問題,你可以做以下的樣式表(假設你正在設置cssclass='redborderbutton'):

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

發表渲染,你可以用JQuery刪除它。

$(document).ready(function() { $("img").removeAttr('style'); } 

用CSS樣式選擇器替換「img」 - 但保留引號。

其實,我這個做了很多在asp.net「修理」 asp.net的默認渲染

1

你可以使用HTML服務器控件。

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

它足夠接近我寫的內容... – jrcs3 2009-04-25 03:12:01

0

ASP是有史以來最黑的一組標籤。即使邊界是「遺留」,可以在CSS中解決。