0

リストビューに交互の行の色を適用しようとしています。

参照されているスタイルシートで他の何かがそれをオーバーライドしている可能性がある場合に備えて、aspx ページのヘッダーに css を含めました。

aspxページで宣言的に記述された他のリストビューでまったく同じ方法を使用しましたが、期待どおりにレンダリングされます。ただし、このリストビューは cs ページにバインドされています。クラスに適用されたCSSスタイルを無視することを除いて、完全に実行されます。

生成された HTML ソースは、クラスがタグに正しく書き込まれていることを示しています。2 番目のオプションとして、AlternatingTemplate ルートに行きました。クラスは HTML コードに正常に書き込まれましたが、まだ css レンダリングは行われませんでした。

aspxページに適用されるスタイルを上書きするcsページにリストビューをバインドすることについて何かありますか? ありがとう。

ASPX:

 <style>
 .EvenRowColor{background-color:#FFF;}
 .OddRowColor{background-color: #E9F1F3;}
 </style>

 <asp:ListView ID="lvOtherAccts" runat="server" ItemPlaceholderID=
    "itemPlaceHolder">
            <LayoutTemplate>
                <table id="ConsumptionData">
                    <tr>
                        <th id="Th1" runat="server">
                            Account
                        </th>
                        <th id="Th2" runat="server">
                            Service Address
                        </th>
                        <th id="Th3" runat="server">
                            City
                        </th>
                        <th id="Th4" runat="server">
                            Last Bill Date
                        </th>
                        <th id="Th5" runat="server">
                            Billed Balance Due
                        </th>
                    </tr>
                    <tr ID="itemPlaceholder" runat="server"></tr> 

                </table>
            </LayoutTemplate>

 <ItemTemplate>
                <tr class='<%# Convert.ToBoolean(Container.DataItemIndex % 2) ? "OddRowColor" : "EvenRowColor" %>'>
                    <td>
                        <asp:Label ID="AcctNbr" runat="server" Text='<%#Eval("acct_nbr")%>' />
                    </td>
                    <td>
                        <asp:Label ID="SvcAddr" align="left" runat="server" Text='<%#Eval("svc_addr")%>' />
                    </td>
                    <td>
                        <asp:Label ID="SvcCity" runat="server" align="left" Text='<%#Eval("svc_city")%>' />
                    </td>
                    <td>
                        <asp:Label ID="BillDate" runat="server" Text='<%#DateTime.Parse(Eval("billing_date").ToString()).ToString("MM/dd/yyyy")%>' />
                    </td>
                    <td style="text-align: right; padding-right: 50px;">
                        <asp:Label ID="Balance" runat="server" Text='<%# Eval("w_bal", "{0:C2}") %>' />
                    </td>
                </tr>
            </ItemTemplate>  
  </asp:ListView>

CS:

 String strConnString10 = WebConfigurationManager.ConnectionStrings["billing_webConnectionString"].ConnectionString;
        SqlConnection con10 = new SqlConnection(strConnString10);
        SqlCommand cmd10 = new SqlCommand("SELECT landlord_nbr, svc_addr, svc_addr2, svc_city, svc_state, svc_zip, acct_nbr, billing_date, w_bal from landlord_info where landlord_nbr='" + ll_num + "'ORDER BY acct_nbr ASC", con10);
        cmd10.Parameters.Add("conn_nbr", SqlDbType.VarChar).Value = Session["LLNum"];
        cmd10.Connection = con10;
        SqlDataAdapter da10 = new SqlDataAdapter(cmd10);
        DataTable dtLLAccts = new DataTable();
        da10.Fill(dtLLAccts);
        lvOtherAccts.DataSource = dtLLAccts;
        lvOtherAccts.DataBind();

HTML 出力のスニペット:

 <tr class='EvenRowColor'>
                    <td>
                        <span id="ContentPlaceHolderMain_lvOtherAccts_AcctNbr_0">209495000</span>
                    </td>
                    <td>
                        <span id="ContentPlaceHolderMain_lvOtherAccts_SvcAddr_0" align="left">266 SEAVER ST                 </span>
                    </td>
                    <td>
                        <span id="ContentPlaceHolderMain_lvOtherAccts_SvcCity_0" align="left">ROXBURY             </span>
                    </td>
                    <td>
                        <span id="ContentPlaceHolderMain_lvOtherAccts_BillDate_0">07/21/2014</span>
                    </td>
                    <td style="text-align: right; padding-right: 50px;">
                        <span id="ContentPlaceHolderMain_lvOtherAccts_Balance_0">$1,925.68</span>
                    </td>
                </tr>

                <tr class='OddRowColor'>
                    <td>
                        <span id="ContentPlaceHolderMain_lvOtherAccts_AcctNbr_1">209642001</span>
                    </td>
                    <td>
                        <span id="ContentPlaceHolderMain_lvOtherAccts_SvcAddr_1" align="left">47 NAZING ST                  </span>
                    </td>
                    <td>
                        <span id="ContentPlaceHolderMain_lvOtherAccts_SvcCity_1" align="left">ROXBURY             </span>
                    </td>
                    <td>
                        <span id="ContentPlaceHolderMain_lvOtherAccts_BillDate_1">07/21/2014</span>
                    </td>
                    <td style="text-align: right; padding-right: 50px;">
                        <span id="ContentPlaceHolderMain_lvOtherAccts_Balance_1">$571.06</span>
                    </td>
                </tr>
4

1 に答える 1

1

以下のように適用してみてください。

.EvenRowColor td{background-color:#FFF;}
.OddRowColor td{background-color: #E9F1F3;}

上記のコードが機能しない場合は、他のスタイルがあなたのものを上書きしています。だから!importantキーワードを使う。

.EvenRowColor td{background-color:#FFF !important;}
.OddRowColor td{background-color: #E9F1F3 !important;}
于 2014-08-21T12:37:40.617 に答える