这是我的转变:
<%# IsFirst() ? "<div class='row'>" : "" %>
<div class='col-xs-12 col-md-3 col-bdlt'>
<div class='bdlt lt'>
<asp:PlaceHolder runat="server" Visible='<%# IfEmpty( Eval("Headshot"), false, true ) %>'>
<img src="<%# Eval("Headshot") %>" alt="<%# Eval("Name") %>" class='img-responsive'>
</asp:PlaceHolder>
<p class='name'><%# Eval("Name") %><%# IfEmpty( Eval("Accolades"),"</p>",",</p> <p class='accolades'>" + Eval("Accolades") + "</p>" ) %>
<p><%# Eval("Copy") %></p>
</div>
</div>
<%# IsLast() ? "</div>" : "" %>
我正在运行Bootstrap,所以我将这些元素连成一行。事情正在发挥作用,但根据副本的数量,它看起来不应该如此。我想做的是每组4人。
所以喜欢这个
所以每隔4号,关闭行div,然后开始一个新的。我认为我的第一行很好,这是我认为需要逻辑的最后一行。
答案 0 :(得分:1)
你想利用DataItemIndex值,并做这样的事情,再加上Modulo
你比较DataItemIndex%4 = 3,因为DataItemIndex是基于0的,所以第4,第8,第12行的索引是3,7,11,模4都是3。
答案 1 :(得分:1)
要开始行,您需要确保第一条记录开始一行:
<%# ( (DataItemIndex % 4 == 0) ? "<div class=\"row\">" : "" ) %> <!-- Start Row -->
要关闭该行,您需要确保最后一条记录结束当前行。
<%# (DataItemIndex % 4 == 3 || DataItemIndex == DataRowView.DataView.Count - 1 ? "</div>" : "") %> <!-- Close Row -->