【问题标题】:How can I create alternating background colors for listview rows while only using ItemTemplate?仅使用 ItemTemplate 时,如何为列表视图行创建交替的背景颜色?
【发布时间】:2012-01-30 00:56:59
【问题描述】:

如何在仅使用 ItemTemplate 时为列表视图行创建交替背景颜色?我不想使用 AlternateTemplate,因为每次我想更改某些内容时,我都必须编辑它们,而我使用它的目的是创建交替的背景颜色。那么我只能使用 ItemTemplate 有什么办法呢?谢谢!

【问题讨论】:

  • 您可以插入一个文字标签,您可以在其中呈现适当的 CSS。不幸的是,我不是 VB 爱好者,但这应该能让你走上正确的道路。
  • 很酷,谢谢,我会调查并回复我的解决方案,谢谢!

标签: asp.net vb.net listview alternating


【解决方案1】:

这也可能有效:

Alternating Table Row Colors with ASP.Net ListView Control

它在您的 ASPX 页面中使用 样式语法来切换基于 DisplayIndex Mod 2 的类。

该链接上的 C# 和 VB 代码示例也...

【讨论】:

    【解决方案2】:

    您是否尝试过使用 Repeater 控件,而不是 ListView。

    您可以更好地控制模板,并且更容易更改交替颜色,而无需重复模板。

    【讨论】:

      【解决方案3】:

      如果您可以将交替颜色视为渐进增强并且并非所有(旧)浏览器都绝对需要,那么您可以使用 CSS n-th 子选择器来应用颜色而不更改 HTML。

      如果您的项目中已经有 jQuery(或类似的)并且想要一个适用于旧版浏览器的解决方案,您可以使用它通过 :odd 或 :even 选择器选择每隔一行。

      更新(示例)

      假设我们正在使用表格行

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

      您也可以使用even2n2n+1。这同样适用于<li> 标签。

      更多示例:http://reference.sitepoint.com/css/pseudoclass-nthchild

      【讨论】:

      • +1 我赞成你的答案,因为它是最好的,但你能发布一个如何用 CSS 做的小例子吗?或者至少到一个可以看到如何完成的帖子?只是为了完整起见......
      • 这适用于我的 Chrome 但不适用于 IE9 :( 我什至禁用了 Intranet 网站的兼容模式。有什么想法吗?
      • 那是因为 IE9 处于兼容模式。查看此问题以了解可能的原因stackoverflow.com/questions/3726357/…
      【解决方案4】:

      使用 ListView 的 ItemDataBound 事件(如果它有一个像 Repeater 那样的事件)。向您的 ItemTemplate 添加一个 runat="server" 元素,您可以使用该元素通过类设置颜色。在事件中获取对该控件的引用并设置css类。

      【讨论】:

        猜你喜欢
        • 2010-11-26
        • 1970-01-01
        • 2022-06-30
        • 1970-01-01
        • 1970-01-01
        • 2015-02-17
        • 2014-06-17
        • 1970-01-01
        • 2017-07-06
        相关资源
        最近更新 更多