来自usercontrol的图片将不会显示在webform上

问题描述:

我在ascx文件http://jsfiddle.net/xkRcN/8/中添加了这段代码。当它是aspx文件时。图片(位置是我的项目中的“Images”文件夹now..was flickr更早)会显示好吧..但是当我把这个页面变成一个用户控件,并将它添加到我的webform中时,图像消失了。我尝试了多次改变路径,但它不工作..用户控件位于名为“usercontrols” folder..image“图像”在我的网页命名的文件夹里面,我的aspx页面的在根级别only..so我改变了用户控件的CSS图像路径如下: -来自usercontrol的图片将不会显示在webform上

background-image: url(../images/myImage.jpg); 

甚至试图

background-image: url(../../images/myImage.jpg); 

background-image: url(~/images/myImage.jpg); 

但雪碧图像是不会显示

一切都在用户控件别人是越来越显示以及..just该图像的missing..whats错了吗?

+0

选择器是否改变?如果你使用id作为CSS选择器,现在它是一个用户控件,它可能会有所不同。 – 2010-10-12 07:07:27

+0

我的webform有一个masterpage ..现在当我在没有masterpage的测试页上添加这个usercontrol时,没有任何东西..图像出现了。为什么? – Serenity 2010-10-12 07:33:47

因为@Michael建议首先测试一下,如果呈现的html(在您的浏览器中查看源代码)已经改变了您尝试设置样式的任何id。当你使用usercontrols和masterpages时,asp.net控件的ID会被改变。

同时检查(在你的浏览器中)他的图像是否通过放置该图像的完整路径存在。所以,如果你知道这个图像是http://example.com/images/myImage.jpg和你的页面(如果您使用用户控件并不重要)http://example.com/pages/page1.aspx那么你知道你应该这样做:

background-image: url(../images/myImage.jpg); 

如果实在不行,那么就这样做:

background-image: url(http://example.com/images/myImage.jpg); 

祝你好运!

编辑

既然你发现了ID的变化是什么原因造成的问题,唯一的解决办法是使用类风格你的HTML标记:

HTML

//some people don't know this but you can also put the style directly into the 
//asp.net control event if visual studio doesn't support it in the intellisense 
<asp:Label id="label1" CssClass="test" style="color:blue;" runat="server" /> 

CSS

.test { color:red; } 

如果你还是想使用id风格你的代码,那么你可以把长期生成的ID到您的CSS代码或升级到asp.net 4这就给控制你的asp.net的ID,例如:

<asp:Label id="label1" ClientIDMode="Static" runat="server" /> 

有第三方解决方案可以控制asp.net 3.5及更低版本的ID,但它们不是开箱即用的,需要一些小窍门。

+0

由于某种原因抱歉无法发布测试页代码......所以我再次仔细检查了页面源代码,并猜测某些div标记ID已经发生了变化! ..我得到这一个div的ID是“div1”..在这个div里面是我的Sprite图片..现在这个“div1”正在改为“ctl00_ContentPlaceHolder2_ctl00_Banner_ctl00_ContentPlaceHolder2_ctl00_Banner_div1”...横幅是在我的测试中声明的UserControl类型的变量页面(我在后面的代码中添加UserControl)...现在我该如何处理这些更改的ID? plz help..thnx – Serenity 2010-10-20 04:17:44

我有这个相同的问题。我通过在.ascx页面中简单地使用<asp:Image />控件来解决这个问题,然后它就可以工作。将ImageUrl引用到images文件夹。