2009-04-25 103 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中解决。