Image won't display in user control
I have a user control that's got an image ..when I added it to a page that doesn't have a Master Page..the image was getting displayed alright but when I added the same user control to a page with a Master Page.the image vanished!....When I checked the Page source the image's path was there like this..
style = "background-image: url(http://localhost/web1/img1.jpg);"
Image exists too! not that its gotten deleted or whatever..
Now idk where I read this but I did somewhere that when master page's added and user control's used..the ID s get changed or something..not sure..idk..if that's so..how on earth do IDs get changed and why and of what ? I just can't figure out what might have gone wrong..How do I test it ??
[EDIT] I checked the Page Source minutely again and guess what some div tag IDs have changed! ..I got this one div who's ID is "div1"..inside of this div is my Sprite image..now this "div1" is being changed to ...."ctl00_开发者_运维知识库ContentPlaceHolder2_ctl00_Banner_ctl00_ContentPlaceHolder2_ctl00_Banner_div1" ...Banner is variable of type UserControl declared in my test page(I am adding UserControl in code behind)...some more Div's IDs are being changed in a similar way...now what do I do about these changing IDs? ... plz help..thnx**
This answer is from Image from usercontrol won't display on webform
Since you found out the id change is what caused the problem, the only solution is to use classes to style your html markups:
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; }
If you still want to use the id to style your code, then you can either put the long generated id into your css code or upgrade to asp.net 4 which gives control over your asp.net ids, for example:
<asp:Label id="label1" ClientIDMode="Static" runat="server"
/>
There are 3rd party solutions to give your control over the ids for asp.net 3.5 and below but they are not out of the box and needs some fiddling.
Just use like that. /web1/img1.jpg And click to solution than properties page. There is a virtual page. Change it like "/".
精彩评论