2008-11-21 44 views
3

我在ASP.NET應用程序中創建了一個GridView,並使用自動格式工具來應用有吸引力的風格。現在我將樣式標記移動到CSS表單中,並且出現一個奇怪的問題,其中標題行中的文本不是正確的顏色(它應該是白色的,但顯示爲明亮的藍色)。 只有當我開始排序時,纔會顯示此問題。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; 
} 

回答

3

我猜明亮的藍色是非常相似的顏色超鏈接。 使gridview可排序意味着你將在頭部有一個標籤,而不是純文本。

這應該對它進行排序:

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

是的。我自己剛剛得出這個結論。 VS.NET創建內聯樣式,因此它將應用於文本或超鏈接。如果您自己推出,則必須添加超鏈接信息。 謝謝! – 2008-11-21 15:50:08

0

在樣式表頭的顏色是正確的:#507CD1是明亮的藍色。那麼它在哪裏顯示爲白色?在Visual Studio的設計師?你的意思是標題背景要白色,還是文字

此外,它也不會傷害從標記中刪除ForeColor =「白色」。它已經在樣式表中。

更新:我沒有完全讀完這個問題,我的道歉。以上是無稽之談。 (或者當我編寫答案時,這個問題已經被修改了。不知道)

1

我不確定你是如何在你的標題上得到一個白色的背景w /或者沒有排序,因爲你有網格頭背景設置藍色(#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; }

,你還需要從GridView的HeaderStyle刪除前景色屬性能夠看到的文字在你的頭,像這樣:

<HeaderStyle CssClass="grid-header" /> 
1

以下爲我工作。Add:

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

th a」不管AllowSorting如何工作。

1

這是我能得到它的工作的唯一辦法:

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

我注意到的是被渲染的.aspx把一個style="color:#333333"標籤鏈接本身。使顏色選項!important覆蓋默認的渲染是我可以使其工作的唯一方法。

希望能幫到別人。

0

注意的是,除了在風格上個的詹姆斯在印建議,在

.grid頭次A {顏色:白色; }

將通過設置您用於排序列來防止頁面部分中的鏈接受到影響。