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 に答える