如何在中继器中创建一个三列div



如何在中继器内创建N(例如3)列div输出?例如,如果我试图在中继器中渲染的项目是从1到6的数字,我希望看到以下输出:

<div><span>1</span><span>2</span><span>3</span></div>
<div><span>4</span><span>5</span><span>6</span></div>

我认为他与mod运算符(%)有关,但我不确定具体如何做到这一点。

class ModContext
{
    public ModContext(int first, int second)
    {
        this.First = first;
        this.Second = second;
        this.Result = this.First % this.Second;
    }
    public int First { get; private set; }
    public int Second { get; private set; }
    public int Result { get; private set; }
}
IList<ModContext> items = new List<ModContext>
    {
            new ModContext(10, 20),
            new ModContext(30, 40)
    };
this.repeater.DataSource = items;
this.repeater.DataBind();

ASPX:

<asp:Repeater id="repeater" runat="server">
  <HeaderTemplate>
     <div>
  </HeaderTemplate>
  <ItemTemplate>
     <span><%# DataBinder.Eval(Container.DataItem, "Result") %></span>
     <span><%# DataBinder.Eval(Container.DataItem, "First") %></span>
     <span><%# DataBinder.Eval(Container.DataItem, "Second") %></span>
   </ItemTemplate>
   <FooterTemplate>
     </div>
   </FooterTemplate>
</asp:Repeater>

我已经好几年没有使用中继器了,所以我在这里遇到了麻烦,但我认为这样的东西应该有效:

  <ItemTemplate>
  <% if(Container.ItemIndex % 3 == 0) {%> <div> <% } %}
  <span><%# DataBinder.Eval(Container.DataItem, "Result") %></span>
  <% if(Container.ItemIndex % 3 == 2) {%> </div> <% } %}
  </ItemTemplate>

最新更新