4

我在 ASP.NET 应用程序中创建了一个 GridView,并使用自动格式化工具应用了一种有吸引力的样式。现在我将样式标记移动到 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;
}
4

6 回答 6

5

我猜亮蓝色与超链接的颜色非常相似。使 gridview 可排序意味着您将在标题内有一个标签,而不仅仅是纯文本。

这应该对其进行排序:

.grid-header a { color: White; background-color: #507CD1; font-weight: bold; }
于 2008-11-21T15:43:14.317 回答
1

我不确定您如何在带有或不带排序的标题上获得白色背景,因为您的网格标题背景在 CSS 中设置为蓝色(#507CD1):

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

如果您希望标题背景为白色,则需要这样做(您还需要将字体颜色更改为更暗的颜色):

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

并且您还需要从 GridView 的 HeaderStyle 属性中删除 ForeColor 才能看到标题中的文本,如下所示:

<HeaderStyle CssClass="grid-header" />
于 2008-11-21T15:35:32.897 回答
1

以下对我有用。添加:

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

th a无论 AllowSorting 如何,“ ”都有效。

于 2009-07-17T13:46:27.527 回答
1

这是我可以让它工作的唯一方法:

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

我注意到.aspx被渲染的那个会style="color:#333333"在链接本身上放置一个标签。使颜色选项!important覆盖默认渲染是我可以让它工作的唯一方法。

希望对某人有所帮助。

于 2009-09-30T16:14:07.380 回答
0

样式表中的标题颜色正确:#507CD1 为亮蓝色。那么它在哪里显示为白色呢?在 Visual Studio 的设计器中?你的意思是标题背景是白色的,还是文本

此外,从标记中删除 ForeColor="White" 也没有什么坏处。它已经在样式表中。

更新:我没有彻底阅读这个问题,我很抱歉。以上纯属胡说八道。(或者在我撰写答案时问题已被修改。不知道)

于 2008-11-21T15:11:58.437 回答
0

请注意,在 Indy 中添加了 James 建议的 th 样式,如

.grid-header th a { 颜色:白色;}

将通过设置用于排序列来防止寻呼机部分中的链接受到影响。

于 2013-01-02T21:39:34.420 回答