如何在Repeater - ASP.NET中的ItemTemplate和AlternatingItemTemplate中使用相同的标记

时间:2011-12-07 17:09:58

标签: asp.net repeater asp.net-4.0

我在ItemTemplate的{​​{1}}中有一个相当复杂的标记,并且asp:Repeater的标记也相同。我不想复制标记。这可以通过Repeater进行吗?

我正在构建的列表不支持排序/编辑/添加,实际上是一个项目列表。由于我使用的是ASP.NET 4.0,您是否建议使用AlternatingItemTemplate的备用控件(同样,我不想在您建议的控件中复制标记)

谢谢。

3 个答案:

答案 0 :(得分:2)

有什么原因让AlternatingItemTemplate而不是完全跳过它?这样你只能有一个模板,ItemTemplate以相同的方式显示奇数/偶数项。它们之间有什么区别吗?

还要记住,ItemTemplate可以使用Container.DataItemIndex(例如CssStyle='<# Container.DataItemIndex % 2 == 0 ? "ItemStyle" : "AlternatingItemStyle"' #>

在{{1}}上实现奇数/偶数行(如不同的css样式)之间的简单差异

答案 1 :(得分:1)

有两种选择:

  1. 使用您想要的标记创建一个用户控件,并添加一个布尔属性AltRow,用于确定如何显示该行。

  2. 使用javascript / jquery / CSS实现备用行样式并完全忽略AlternatingItemTemplate。

答案 2 :(得分:1)

TR的内嵌页码:

<tr class="<%# (Container.ItemIndex % 2 == 0) ? "AltRowStyle" : "" %>">

具有“caseTable”类的表的CSS代码

.caseTable tr.AltRowStyle  td 
{
    background-color: #FAF8DC;
}