Проблема с CSS в ASP.NET GridView при включенной сортировке

Я создал GridView в приложении ASP.NET и использовал инструмент «Автоформат», чтобы применить привлекательный стиль. Теперь я перемещаю разметку стиля на лист CSS, и у меня возникает странная проблема, когда текст в строке заголовка имеет неправильный цвет (он должен быть белым, но отображается ярко-синим). Эта проблема появляется только тогда, когда я включаю сортировку.

Все остальное работает нормально. Например, я могу изменить фон заголовка на красный, и он станет красным, а остальные стили сетки будут применены соответствующим образом.

Кто-нибудь знает, в чем заключается сделка? Я включил фрагменты кода ниже. Я также новичок в CSS. Дайте мне знать, если у кого-нибудь есть советы по улучшению моей разметки CSS.

Спасибо!

Вот код ASP.NET. Я могу добавить ForeColor = "White" в HeaderStyle, и все работает нормально.

<asp:GridView ID = "GridView1" runat = "server" CssClass = "grid"
AutoGenerateColumns = "False" DataKeyNames = "ID" DataSourceID = "SqlDataSource1" 
EmptyDataText = "There are no data records to display." AllowSorting = "True" 
CellPadding = "4" GridLines = "Both">
<FooterStyle CssClass = "grid-footer" />
<RowStyle CssClass = "grid-row" />
    <Columns>
        <asp:BoundField DataField = "Kingdom" HeaderText = "Kingdom" 
            SortExpression = "Kingdom" />
        <asp:BoundField DataField = "Phylum" HeaderText = "Phylum" 
            SortExpression = "Phylum" />
        <asp:BoundField DataField = "GenusSpeciesStrain" HeaderText = "Genus species (strain)" 
            SortExpression = "GenusSpeciesStrain" />
        <asp:BoundField DataField = "Family" HeaderText = "Family" 
            SortExpression = "Family" />
        <asp:BoundField DataField = "Subfamily" HeaderText = "Subfamily" 
            SortExpression = "Subfamily" />
        <asp:BoundField DataField = "ElectronInput" HeaderText = "Electron Input" 
            SortExpression = "ElectronInput" />
        <asp:BoundField DataField = "OperonLayout" HeaderText = "Operon Layout" 
            SortExpression = "OperonLayout" />
    </Columns>
    <PagerStyle CssClass = "grid-pager" />
    <SelectedRowStyle CssClass = "grid-selected-row" />
    <HeaderStyle CssClass = "grid-header" />
    <EditRowStyle CssClass = "grid-row-edit" />
    <AlternatingRowStyle CssClass = "grid-row-alternating" />

А вот содержимое таблицы стилей, которую я использую:

body {
}

.grid
{
    color: #333333;
}

.grid-row
{
    background-color: #EFF3FB;
}

.grid-row-alternating
{
    background-color: White;
}

.grid-selected-row
{
    color: #333333;
    background-color: #D1DDF1;
    font-weight: bold;
}

.grid-header, .grid-footer
{
    color: White;
    background-color: #507CD1;
    font-weight: bold;
}

.grid-pager
{
    color: White;
    background-color: #2461BF;
    text-align: center;
}

.grid-row-edit
{
    background-color: #2461BF;
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
20 389
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Цвет заголовка в таблице стилей правильный: # 507CD1 ярко-синий. Тогда где он отображается белым? В дизайнере Visual Studio? Вы имеете в виду, что заголовок фон должен быть белым или текст?

Также не помешало бы удалить ForeColor = "White" из разметки. Это уже есть в таблице стилей.

Обновлять: Я недостаточно внимательно прочитал вопрос, приношу свои извинения. Вышесказанное - ерунда. (Или вопрос был изменен, пока я писал свой ответ. Не знаю)

Я не уверен, как вы получаете белый фон в вашем заголовке без сортировки, потому что у вас есть фон вашего заголовка сетки, установленный синим цветом (# 507CD1) в вашем CSS:

.grid-header, .grid-footer { color: White; background-color: #507CD1; font-weight: bold; }

вот что должно быть, если вы хотите, чтобы фон заголовка был белым (вам также нужно изменить цвет шрифта на что-то более темное):

.grid-header, .grid-footer { color: #000; background-color: #fff; font-weight: bold; }

и вам также необходимо удалить ForeColor из атрибута GridView HeaderStyle, чтобы иметь возможность видеть текст в вашем заголовке следующим образом:

<HeaderStyle CssClass = "grid-header" />
Ответ принят как подходящий

Я предполагаю, что ярко-синий цвет очень похож на цвет гиперссылки. Сортировка gridview означает, что у вас будет тег внутри вашего заголовка, а не просто текст.

Это должно отсортировать его:

.grid-header a { color: White; background-color: #507CD1; font-weight: bold; }

Ага. Я просто сам пришел к такому выводу. VS.NET создает встроенный стиль, поэтому он будет применяться к тексту или гиперссылкам. Если вы катитесь самостоятельно, вам нужно добавить информацию о гиперссылке. Спасибо!

Dana Robinson 21.11.2008 18:50

Следующее сработало для меня. Добавлять:

.grid-header th a
{
    color: White;
}

th a работает независимо от AllowSorting.

Это единственный способ заставить его работать:

.HeaderStyle a
{
    background-color: #DE7B0A;
    color: White!important
}

Я заметил, что при рендеринге .aspx помещает тег style = "color:#333333" в ссылку. Настройка параметра цвета !important для отмены рендеринга по умолчанию - единственный способ заставить его работать.

Надеюсь, это кому-то помогло.

Обратите внимание, что добавление th в стиле, предложенном Джеймсом в Indy, например,

.grid-header th a {цвет: белый; }

предотвратит использование ссылок в разделе пейджера, установив, что вы используете для столбец сортировки.

Другие вопросы по теме