asp.net - 内联如果似乎只在第一次迭代时被调用 asp.net vb

标签 asp.net vb.net

我想知道是否有人可以澄清我做错了什么。在这里给你一个完整的情况是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/

相关文章:

c# - 扩展方法必须在非通用静态类中定义

asp.net - 是否有任何理由不将 pdb 文件部署到生产 Web 服务器?

asp.net - 无法读取配置节 'appSettings',因为它缺少节声明

MySQL语句将密码保存到数据库?

c# - 从 VB 转换为 C#

asp.net - 如何有选择地在后台线程上运行一些代码?

c# - 是否可以为 ASP.Net 中的区域设置自定义序列化程序?

c# - 如何使用 Global.asax 来使用 Local_resources?

c# - "File Number"到底是什么?

vb.net - 如何在没有 API 的情况下查找 OneDrive (SkyDrive) 和 GoogleDrive 文件夹?