Изображение не будет отображаться на моей странице aspx после добавления главной страницы.. если не изменился идентификатор.. что еще может быть причиной?
Использовал следующий код, чтобы избавиться от сгенерированного системой идентификатора: -
Banner.ascx.cs
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
StringWriter Html = new StringWriter();
HtmlTextWriter Render = new HtmlTextWriter(Html);
base.Render(Render);
writer.Write(Html.ToString().Replace("id=\"ctl00_ContentPlaceHolder2_ctl00_Banner_", "id=\""));
}
используя приведенный выше код, он отображает идентификатор как исходный (т. е. "div1".. раньше он отображал идентификатор div как "ctl00_ContentPlaceHolder2_ctl00_Banner_div1"... так что я изменил идентификатор, поскольку резонатор не отображает мое изображение), но все же изображение не будет отображаться...
testClass.aspx: -
<div id="div1" class="id0" style="background-image: url(<%=GetImage()%>);">
<ul>
<li>
<li>
.
.
.
</ul>
</div>
testClass.aspx.cs
public partial class testClass : System.Web.UI.Page
{
Control userControlBanner;
UserControl Banner;
Content c1;
protected void Page_PreInit(object sender, EventArgs e)
{
this.MasterPageFile = (String)("~/master1.master");
c1 = new Content();
string uc = "~/usercontrols/Banner.ascx";
userControlBanner = Page.LoadControl(uc);
userControlBanner.ID = "Banner";
c1.Controls.Add(userControlBanner);
this.Master.FindControl("ContentPlaceHolder2").Controls.Add(c1);
}
}
Теперь, когда приведенный выше код отображается в исходном коде страницы, я вижу полный путь к изображению как "http://localhost/myweb/images/myImage.jpg" и вижу изображение, когда я набираю этот адрес "http: // localhost /myweb/images/myImage.jpg "в браузере, почему изображение не появляется на моей странице aspx!? ((
Я так старался избавиться от идентификатора, сгенерированного системой, но изображение не показывалось!:((
Edit1:
Хорошо, я даже указал путь (где изображение на самом деле) к изображению, как это:- "F:\WS\myweb\images\myimage.jpg" ... это должно хотя бы показать сейчас!.. не так ли? Изображение скрывается за каким-то другим элементом страницы или как?
Боже, я застрял в этом, как и все ((
Edit2:
хорошо, я попробовал то, что сказал mxmissile.. добавил один тег div на мою тестовую страницу и назначил для него пользовательский элемент управления вместо "ContentPlaceHolder" (хотя я хочу, чтобы там был только баннер) ... теперь изображение все еще не появляется.. все остальное в порядке... элементы списка и все... только то, что изображение не появляется... Я удалил все из пользовательского элемента управления, но спрайтное изображение может думать, что изображение скрывается или что-то скрывается за этим списком ссылок.. до сих пор нет изображения:(кто-то помогите пожалуйста. Спасибо!
Edit3:
Когда я открыл Firebug.. в разделе "Стиль"... он показывает путь к изображению, вычеркнутый.. почему это???
Edit4:
обнаруженный стиль был переопределен.. Я дал фоновое изображение в моем css и то же самое в теге div с ID=id0.. удалил свойство background-image из тега div.. теперь путь к изображению только в css... так что больше не ударил из текста.. пока изображение не появляется.... путь к изображению правильный... в разделе "Стиль" в Firebug.. Я могу увидеть изображение, когда наведу
.id0, .mySprite:hover div {
background-image:url("http://localhost/myWeb/images/myImage.jpg");
Почему я не вижу изображение баннера на своей странице?
Edit5:
изменил это:
.id0, .mySprite:hover div
{
background-image: url(../images/myImage.jpg);
background-repeat: no-repeat;
}
к этому:
.id0, .mySprite:hover div
{
background-image: url(../images/myImage.jpg);
background-repeat: no-repeat;
width: 728px;
height: 243px;
}
еще ничего!:(((Если это даже не проблема размера, что это???
Edit6:
Изображение извлекается из метода... url(<%=GetImage()%>);
этот метод возвращает путь в порядке.. просто не вижу изображения на моей странице.. что не так??
[РЕДАКТИРОВАТЬ 7]
Это только после добавления главной страницы, что этот спрайт облажался.. отлично работал раньше..
6 ответов
В одном из ваших комментариев вы заявили:
"В css тоже путь показывается вот так при просмотре исходного кода страницы"background-image: url(localhost/myweb/images/myImage.jpg);"
В этом случае браузер будет искать относительную папку с именем localhost /... вплоть до файла myImage.jpg, вам необходимо предоставить действительный URL (абсолютный или относительный)
Или:
background-image: url(http://localhost/myweb/images/myImage.jpg);
или же
Предполагая, что путь к вашей тестовой странице - http://localhost/myweb/testClass.aspx:
background-image: url(images/myImage.jpg);
Проверка получения базового URL-адреса корня веб-сайта (абсолютного / относительного URL) и ASP.NET - темы и относительные ссылки
testClass.aspx Источник страницы:-
<div id="div1" class="id0" background-image: url(<%=GetImage()%>);>
Это не HTML, даже не допустимый XML. использование
<div id="div1" class="id0" style="background-image: url(<%=GetImage()%>);">
вместо. (В конечном итоге, вы должны поместить объявление background-image в таблицу стилей, но это может быть кэшировано, что является еще одной головной болью при тестировании.)
Кроме того, избавьтесь от отрицательных z-индексов во время тестирования.
Разметка:
<div id="div1" class="c1" runat="server" ></div>
отделенный код:
div1.Controls.Add(userControlBanner);
Не устанавливайте путь изображения в местоположение F:ws... используйте свой оригинальный путь "/images/myImage.jpg"
или даже лучше "~/images/myImage.jpg"
Вы добавили изображение в решение Visual Studio?
Я замечаю, что иногда изображения не отображаются, когда они не добавляются в решение, как это ни странно.
Ваша главная страница имеет CSS с <li>
Задано ли для свойства background значение тега? Может быть, это вызывает скрытие фона вашего div.