WebForms 转发器,设置 CSS class 取决于项目索引
WebForms repeater, set CSS class depends on item index
我是 WebForms 新手。
现在我正在使用 Repeater 来显示 List 集合中的项目。
我需要改变的问题css class 取决于物品的均匀度。
我的转发器代码:
<asp:Repeater runat="server" ID="rptItems">
<ItemTemplate>
<div class="not-even">
<%# Eval("Title") %>
</div>
<ItemTemplate>
</asp:Repeater>
而我想要的是:
<div class="not-even">
Item 1
</div>
<div class="even">
Item 2
</div>
<div class="even">
Item 3
</div>
<div class="even">
Item 4
</div>
如何设置 CSS class 取决于使用转发器的项目的均匀度?
您可以为此使用三元运算符。检查 ItemIndex
并设置正确的 class.
<asp:Repeater ID="rptItems" runat="server">
<ItemTemplate>
<div class="<%# Container.ItemIndex %2 == 1 ? "even" : "not-even" %>">
Item <%# Container.ItemIndex + 1 %>
</div>
</ItemTemplate>
</asp:Repeater>
显而易见的解决方案是 AlternatingItemTemplate
,它正是为此而设计的。
<asp:Repeater runat="server" ID="rptItems">
<ItemTemplate>
<div class="not-even">
<%# Eval("Title") %>
</div>
<ItemTemplate>
<AlternatingItemTemplate>
<div class="even">
<%# Eval("Title") %>
</div>
<AlternatingItemTemplate>
</asp:Repeater>
不太明显,但可以说更简单,就是将 CSS 与 :nth-child(odd)
和 :nth-child(even)
.
一起使用
比如给中继器一个基数cssclass
<asp:Repeater runat="server" ID="rptItems" class="items">
<ItemTemplate>
<div>
<%# Eval("Title") %>
</div>
<ItemTemplate>
</asp:Repeater>
会导致
.items :nth-child(odd)
{
color:red;
}
.items :nth-child(even)
{
color:blue;
}
<div class="items">
<div>
Item 1
</div>
<div>
Item 2
</div>
<div>
Item 3
</div>
<div>
Item 4
</div>
</div>
我是 WebForms 新手。 现在我正在使用 Repeater 来显示 List 集合中的项目。 我需要改变的问题css class 取决于物品的均匀度。
我的转发器代码:
<asp:Repeater runat="server" ID="rptItems">
<ItemTemplate>
<div class="not-even">
<%# Eval("Title") %>
</div>
<ItemTemplate>
</asp:Repeater>
而我想要的是:
<div class="not-even">
Item 1
</div>
<div class="even">
Item 2
</div>
<div class="even">
Item 3
</div>
<div class="even">
Item 4
</div>
如何设置 CSS class 取决于使用转发器的项目的均匀度?
您可以为此使用三元运算符。检查 ItemIndex
并设置正确的 class.
<asp:Repeater ID="rptItems" runat="server">
<ItemTemplate>
<div class="<%# Container.ItemIndex %2 == 1 ? "even" : "not-even" %>">
Item <%# Container.ItemIndex + 1 %>
</div>
</ItemTemplate>
</asp:Repeater>
显而易见的解决方案是 AlternatingItemTemplate
,它正是为此而设计的。
<asp:Repeater runat="server" ID="rptItems">
<ItemTemplate>
<div class="not-even">
<%# Eval("Title") %>
</div>
<ItemTemplate>
<AlternatingItemTemplate>
<div class="even">
<%# Eval("Title") %>
</div>
<AlternatingItemTemplate>
</asp:Repeater>
不太明显,但可以说更简单,就是将 CSS 与 :nth-child(odd)
和 :nth-child(even)
.
比如给中继器一个基数cssclass
<asp:Repeater runat="server" ID="rptItems" class="items">
<ItemTemplate>
<div>
<%# Eval("Title") %>
</div>
<ItemTemplate>
</asp:Repeater>
会导致
.items :nth-child(odd)
{
color:red;
}
.items :nth-child(even)
{
color:blue;
}
<div class="items">
<div>
Item 1
</div>
<div>
Item 2
</div>
<div>
Item 3
</div>
<div>
Item 4
</div>
</div>