ASP.NET CSS на PostBack в IE 7 не работает - PullRequest
0 голосов
/ 26 января 2009

Когда моя страница ASP.NET выполняет обратную передачу в IE7, весь CSS теряется. Я не использую Темы и включаю CSS из главной страницы в код позади.

    protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    AddStylesheetInclude("/static/css/global.css");
    AddStylesheetInclude("/static/css/sifr.css");
}

И мой код для добавления:

public virtual void AddStylesheetInclude(String url)
{
    HtmlLink link = new HtmlLink();
    link.Attributes["type"] = "text/css";
    link.Attributes["href"] = url;
    link.Attributes["rel"] = "stylesheet";
    Page.Header.Controls.Add(link);
}

Он отлично работает в Firefox, просто в IE. Чтобы добавить больше контекста, во включенном CSS-файле он использует @import для включения остальных.

[Изменить] Это работает, если я беру все правила @import и включаю их в фактический HTML.

Ответы [ 4 ]

1 голос
/ 27 января 2009

Проведя дополнительные исследования вашей проблемы, я обнаружил, что причина не работает со ссылкой, потому что (http://www.broken -links.com / 2007/02/15 / ie7-and-import-media -types / ) IE7 не совместим с @import. Это неплохо, потому что IE7 исправил взломы отладки "важный" и "* html", поэтому без ошибки @import не было бы простого способа отладки в IE7. Но я уверен, что они исправят это в следующий раз (5 лет или около того?), И на этом этапе отладка в IE * будет h * ll.

Итак, я думаю, что пока это единственный способ добавить скрипт css на стороне клиента, чтобы он всегда оставался отображаемым на странице. после того, как вы соберете ссылку, включенную в файл css, ваш IntelliSense должен подобрать ваши классы, когда вы попытаетесь добавить классы к элементам управления в вашем исходном файле ... если этого не произойдет, может быть что-то не так с вашей ссылкой на файл, поэтому вместо этого включите ваш код CSS в ваш исходный код так:

<style type="text/css"> 

.highlight{               
background-color: #C0DDE0;     
}
</style>

и вы должны быть в состоянии что-то вроде этого

     <table id="table1" class="highlight"/>
0 голосов
/ 27 января 2009

Хм, есть ли причина, по которой вы ссылаетесь на свои CSS-файлы следующим образом?

0 голосов
/ 27 января 2009

Проверено ли, что тег остается на странице после обратной передачи? Кажется, я кое-что помню о трудностях надежного манипулирования тегом HEAD.

0 голосов
/ 27 января 2009

Если css по-прежнему не работает даже после того, как вы поместили тег ссылки прямо в голову, я бы сказал, что нет ничего плохого в том, как вы включаете css, а скорее в css-файлы сами по себе.

Попробуйте включить их все без @import прямо в голове. Таким образом, вы можете исключить любые проблемы с импортом.

...