1

ItemTemplateのみを使用しながら、リストビュー行の背景色を交互に作成するにはどうすればよいですか? AlternateTemplate を使用したくないのは、交互の背景色を作成するためだけに何かを変更したいときはいつでも両方を編集する必要があるからです。では、ItemTemplate のみを使用してそれを行う方法は何ですか? ありがとう!

4

4 に答える 4

7

代替色をプログレッシブ エンハンスメントと見なすことができ、すべての (古い) ブラウザーで絶対に必要というわけではない場合は、CSS n 番目の子セレクターを使用して、HTML を変更せずに色を適用できます。

プロジェクトにすでに jQuery (または類似のもの) があり、古いブラウザーのソリューションが必要な場合は、それを使用して、:odd または :even セレクターで他のすべての行を選択できます。

アップデート(例)

テーブル行を使用していると仮定します

tr:nth-child(odd) td{  
  background-color: red;  
}

even2nまたはも使用できます2n+1<li>これは、タグでも同様に機能します。

その他の例: http://reference.sitepoint.com/css/pseudoclass-nthchild

于 2011-12-29T17:04:07.350 に答える
2

これもうまくいくかもしれません:

ASP.Net ListView コントロールを使用して表の行の色を交互に変更する

ASPX ページで<%#スタイルの構文を使用して、DisplayIndex Mod 2 に基づいてクラスを切り替えます。

そのリンクの C# および VB コード サンプルも...

于 2011-12-29T18:19:39.970 に答える
1

ListView の ItemDataBound イベントを使用します (リピーターのようなイベントがある場合)。クラスを使用して色を設定するために使用できる ItemTemplate に runat="server" 要素を追加します。イベントでこのコントロールへの参照を取得し、css クラスを設定します。

于 2011-12-29T17:05:24.977 に答える
1

ListView の代わりに Repeater コントロールを使用してみましたか。

テンプレートをより細かく制御できるようになり、テンプレートを複製することなく、交互の色を簡単に変更できます。

于 2011-12-29T18:16:28.183 に答える