1 1 1    1 2 3
2 2 2    4 5 6
3 3 3    7 8 9 我的要的是后面,他出现的却是前者
 要怎么解决啊。帮帮小弟

解决方案 »

  1.   

    估计是在repeater的itemtemplate里写了三列绑定了三次吧,当然出现前面的情形。
    简单的解决办法是用datalist,itemtemplate里也写一列绑定一次,设置RepeaterColumns属性为3就出现后面的结果。
      

  2.   

    http://topic.csdn.net/u/20090827/16/CFDC1335-1DA2-4839-9C43-76D2623F31F9.html
      

  3.   

    这问题问的还真有水准~datalist是可以自己定义成你需要的样式的
      

  4.   

    参考:repeater实现多列显示
    要生成的HTML代码,也即每列4行显示:
                      <ul>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                        </ul>
                        <ul>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                        </ul>
                        <ul>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                         <Li>测试列表...</Li>
                        </ul>用Repeater每列4行显示:
       <ul>
           <asp:Repeater ID="rptLT" runat="server" OnItemDataBound="rptLT_ItemDataBound">
              <ItemTemplate>
                  <li><a href="<%#"InfoDetail.aspx?InfoID=" + Eval("InfoID")%>">
                         <%# Eval("Title")%>
                  </a></li>
               </ItemTemplate>
          </asp:Repeater>
       </ul> 后台代码:   
        
            int i = 1;
            //Repeater每列4行显示
            protected void rptLT_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (i % 4 == 0 && i < 12)
                {
                    e.Item.Controls.Add(new LiteralControl("</ul><ul>"));
                }
                i++;
            }