我想知道是否有人可以澄清我做错了什么。在这里给你一个完整的情况是asp repeater;
<asp:Repeater ID="gdvCars" runat="server">
<HeaderTemplate><h1>Cars</h1><hr/></HeaderTemplate>
<ItemTemplate>
<%# IIf((Container.ItemIndex)/3 = 0 Or Container.ItemIndex=0, "<div class='row'>", "")%>
<div class="col-md-4">
<div class="thumbnail">
<asp:Image runat="server" ImageUrl= <%#Container.DataItem("Image_path")%> ></asp:Image>
<div class="caption">
<h3><%#Container.DataItem("Make")%> <%#Container.DataItem("Model")%></h3>
<table class="table table-striped">
<tr><th>Make</th><td><%#Container.DataItem("Make")%></td></tr>
<tr><th>Model</th><td><%#Container.DataItem("Model")%></td></tr>
</table>
</div>
</div>
</div>
<%# IIf((Container.ItemIndex)/3 = 0, "</div>", "")%>
</ItemTemplate>
</asp:Repeater>
上面的代码是一个 VB ASP.net 脚本,它试图循环遍历数据库返回的数据源,并在每三次迭代时创建一个新行,但是它唯一匹配的时间是在第一次迭代时。
如果需要,我可以提供更多信息,其余的似乎仅内联 if 语句就可以正常工作;
<%# IIf((Container.ItemIndex)/3 = 0 Or Container.ItemIndex=0, "<div class='row'>", "")%>
和
<%# IIf((Container.ItemIndex)/3 = 0, "</div>", "")%>
最佳答案
让我们看看:
0/3 = 0
1/3 = 0.33
2/3 = 0.66
3/3 = 1
4/3 = 1.33
5/3 = 1.66
...
所以是的,它只在第一次迭代时返回 0
。您是否打算进行模运算 (Container.ItemIndex Mod 3 = 0
) 而不是除法 (/
)?
关于asp.net - 内联如果似乎只在第一次迭代时被调用 asp.net vb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23522017/