3

我有一个奇怪的问题。我创建了一个绑定到 ObjectDataSource 的 GridView。

我现在有一个奇怪的事情,所有网格行都有样式“背景颜色:白色”。但我从未宣布过这一点,我在我的项目中找不到任何设计它的地方。既不内联 .aspx 也不内联任何 css 或任何代码。只是这个样式定义在我的项目中不存在。

我直接添加到 GridView 的信息被样式定义覆盖。这是 Firebug 得到的:

<div>
<table id="MainContent_UserGrid" cellspacing="0" cellpadding="4" style="width:100%;border-collapse:collapse;">
<tbody>
<tr style="color:White;background-color:#5D7B9D;font-weight:bold;">
<tr style="color:#333333;background-color:White;">
<td>
<td>name.ofme@mydomain.com</td>
<td>Name of me</td>
<td>Y</td>
<td>
</tr>
<tr style="color:#284775;background-color:White;">
<tr style="color:#333333;background-color:White;">
<tr style="color:#284775;background-color:White;">
<tr style="color:#333333;background-color:White;">
</tbody>
</table>
</div>

这是我的网格 ASPX 代码:

<asp:GridView ID="UserGrid"
              runat="server"
              AutoGenerateColumns="False" 
              DataKeyNames="AD_ID"
              DataSourceID="UserByAdminAdapter" CellPadding="4" 
              GridLines="None" Width="100%" AllowPaging="True">

    <Columns>
        <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
            ShowSelectButton="True" />
        <asp:BoundField DataField="AD_ID" HeaderText="AD_ID" ReadOnly="True" 
            SortExpression="AD_ID"></asp:BoundField>
        <asp:BoundField DataField="NAME" HeaderText="NAME" SortExpression="NAME" 
            ReadOnly="True">
        </asp:BoundField>
        <asp:BoundField DataField="ACCOUNT_TYPE" HeaderText="ACCOUNT_TYPE" 
            SortExpression="ACCOUNT_TYPE" Visible="False" ReadOnly="True"></asp:BoundField>
        <asp:BoundField DataField="ADMIN_ID" HeaderText="ADMIN_ID" 
            SortExpression="ADMIN_ID" Visible="False" ReadOnly="True"></asp:BoundField>
        <asp:BoundField DataField="BOOKINGS_CONSISTENT" HeaderText="BOOKINGS_CONSISTENT" 
            SortExpression="BOOKINGS_CONSISTENT" ReadOnly="True"></asp:BoundField>
        <asp:BoundField DataField="COMPANY" HeaderText="COMPANY" 
            SortExpression="COMPANY" Visible="False" />
        <asp:TemplateField HeaderText="COMPANY_NAME" SortExpression="COMPANY_NAME">
            <EditItemTemplate>
                <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="Companies" 
                    DataTextField="NAME" DataValueField="ROW_ID" 
                    SelectedValue='<%# Bind("COMPANY") %>'>
                </asp:DropDownList>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("COMPANY_NAME") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>

    <RowStyle  BackColor="#000000" ForeColor="#333333"  />
    <AlternatingRowStyle  BackColor="#99FFCC" ForeColor="#284775" />

    <EditRowStyle BackColor="#999999" />
    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />

    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
    <sortedascendingcellstyle backcolor="#E9E7E2" />
    <sortedascendingheaderstyle backcolor="#506C8C" />
    <sorteddescendingcellstyle backcolor="#FFFDF8" />
    <sorteddescendingheaderstyle backcolor="#6F8DAE" />

</asp:GridView>

顺便说一句,在 c# 代码中更改行的背景颜色也不会改变任何内容。我有一个通过 css 的解决方法,但这不是“好”。

马上谢谢你!

4

2 回答 2

1

您的项目中是否有一个主题可能会覆盖您的网格样式?

您能否在代码后面的某处修改样式(我对此表示怀疑)。

与其在您的gridview footerStyle中放置特定样式,不如在您的css中创建一个类并链接到它

<RowStyle  BackColor="#000000" ForeColor="#333333"  />

变成

<RowStyle CssClass="ItemStyle" />

它可能更容易在 Firebug 中排除故障并减少内联样式的数量(同时更易于维护)。

于 2012-10-26T12:13:47.980 回答
0

是自动造型。您可以为您的 GridView 创建 CSS 类并将它们应用于以下属性:

        <HeaderStyle CssClass="tableHead"  />
        <RowStyle CssClass="tableRow" />
        <PagerStyle CssClass="pager" />

    //Example 
    <asp:GridView runat="server" ID="grdAssetSearchResults" AutoGenerateColumns="false" GridLines="Both" AllowSorting="true"  UseAccessibleHeader="true" >
        <HeaderStyle CssClass="tableHead"  />
        <RowStyle CssClass="tableRow" />
        <PagerStyle CssClass="pager" />
        <Columns>
         //Columns
        </Columns>
    </asp:GridView>
于 2012-10-26T12:14:26.487 回答