就像上面的图片一样;要求一个<li>里面有4条数据;这个用DATALIST好绑定;可是由于弄些原因,现在只能用Repeater绑定;我的代码是:                         <ul> 
                            <li >   
                                 <asp:Repeater ID="rptOrBind" runat="server" onitemdatabound="rptOrBind_ItemDataBound1" 
                                >
                                <ItemTemplate>                     
                         <div class="screnInproOne"><img src="../LineImages/<%# Eval("HistoryImage") %>" class="mb10 imgStyleTop" /><p ><%# Eval("LineTitle") %></p></div>
                         </ItemTemplate>  
                             </asp:Repeater> 
                        </li>
                        </ul>
protected void rptOrBind_ItemDataBound1(object sender, RepeaterItemEventArgs e)
        {
            if ((rptOrBind.Items.Count) % 4 == 0 && rptOrBind.Items.Count > 0)
            { 
               e.Item.Controls.Add(new LiteralControl("</li><li>"));
            }
        }可是现在不知道是什么原因;每当显示出来后,第一个<LI>里面总是有5条数据; 后面的都是显示的4条!!!!

解决方案 »

  1.   

    一共多少数据
    看看页面
    <asp:repeater id="myRepeater" runat="server">
    <ItemTemplate>
      <tr>
      <td>
      第一列
      </td>
    </ItemTemplate>
    <AlternatingItemTemplate>
      <td>
      第二列
      </td>
      </tr>
    </AlternatingItemTemplate>
    </asp:repeater>
    </table>或者
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
      if (i % 4 == 0)
      {
      e.Item.Controls.Add(new LiteralControl("</tr><tr>"));
      }
      i++;//每一条记录绑定的时候就会加1

    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {  
                if (i % 4 == 0 && i < 20)             {
                      e.Item.Controls.Add(new LiteralControl("</LI><li>")); 
                }
                i++;
            }
      

  2.   

    DATALIST怎么了?
    说说原因吧,也许能解决,不然用Repeater是比较麻烦的
      

  3.   

    if ((rptOrBind.Items.Count) % 4 == 3 && rptOrBind.Items.Count > 0)
                { 
                   e.Item.Controls.Add(new LiteralControl("</li><li>"));
                }试试
      

  4.   

    主要就是样式问题
    <style type="text/css">
            body{margin:0px;padding:0px;}
            ul{list-style:none;margin:0px;padding:0px;width:240px;}
            ul li{float:left;margin-right:10px;}
            img{width:50px;height:50px;}
        </style>
    <body>
        <ul>
            <li><img src="images/p001.jpg" /></li>
            <li><img src="images/p001.jpg" /></li>
            <li><img src="images/p001.jpg" /></li>
            <li><img src="images/p001.jpg" /></li>
            <li><img src="images/p001.jpg" /></li>
            <li><img src="images/p001.jpg" /></li>
            <li><img src="images/p001.jpg" /></li>
            <li><img src="images/p001.jpg" /></li>
            <!--测试数据替换成-->
            <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
            <li><img src="images/p001.jpg" /></li>
            </ItemTemplate>
            </asp:Repeater>
        </ul>
    </body>
      

  5.   

    试试
                if ((rptOrBind.Items.Count+1) % 4 == 0)
                { 
                   e.Item.Controls.Add(new LiteralControl("</li><li>"));
                }