如何用asp.net生成这个列表?

时间:2012-02-01 11:43:34

标签: c# asp.net

我想在asp.net中生成以下列表?

<div class="items">

      <!-- 1-5 -->
      <div>
         <img src="http://farm1.static.flickr.com/143/321464099_a7cfcb95cf_t.jpg" />
         <img src="http://farm4.static.flickr.com/3089/2796719087_c3ee89a730_t.jpg" />
         <img src="http://farm1.static.flickr.com/79/244441862_08ec9b6b49_t.jpg" />
         <img src="http://farm1.static.flickr.com/28/66523124_b468cf4978_t.jpg" />
         <img src="http://farm1.static.flickr.com/164/399223606_b875ddf797_t.jpg" />
      </div>

      <!-- 5-10 -->
      <div>
         <img src="http://farm1.static.flickr.com/163/399223609_db47d35b7c_t.jpg" />
         <img src="http://farm1.static.flickr.com/135/321464104_c010dbf34c_t.jpg" />
         <img src="http://farm1.static.flickr.com/40/117346184_9760f3aabc_t.jpg" />
         <img src="http://farm1.static.flickr.com/153/399232237_6928a527c1_t.jpg" />
         <img src="http://farm1.static.flickr.com/50/117346182_1fded507fa_t.jpg" />
      </div>

      <!-- 10-15 -->
      <div>
         <img src="http://farm4.static.flickr.com/3629/3323896446_3b87a8bf75_t.jpg" />
         <img src="http://farm4.static.flickr.com/3023/3323897466_e61624f6de_t.jpg" />
         <img src="http://farm4.static.flickr.com/3650/3323058611_d35c894fab_t.jpg" />
         <img src="http://farm4.static.flickr.com/3635/3323893254_3183671257_t.jpg" />
         <img src="http://farm4.static.flickr.com/3624/3323893148_8318838fbd_t.jpg" />
      </div>

   </div>

用什么?我尝试了repeater和datagrid。

3 个答案:

答案 0 :(得分:6)

不使用Repeater,而是使用ListView控件。

这允许您对项目进行分组,并且可以使用ASP.NET 3.5 +

http://www.4guysfromrolla.com/articles/010208-1.aspx

<asp:ListView ID="ProductList1" runat="server" 
   DataSourceID="ProductDataSource" 
   GroupItemCount="5" ItemPlaceholderID="itemsGoHere" 
   GroupPlaceholderID="groupsGoHere">

   <LayoutTemplate>
         <asp:PlaceHolder runat="server" ID="groupsGoHere"></asp:PlaceHolder>
   </LayoutTemplate>

   <GroupTemplate>
      <div>
         <asp:PlaceHolder runat="server" ID="itemsGoHere"></asp:PlaceHolder>
      </div>
   </GroupTemplate>

   <ItemTemplate>
      <img />
   </ItemTemplate>
</asp:ListView>

答案 1 :(得分:0)

未经测试...

//divMain should be a reference to the 'items' div...

int i = 0;

System.Web.UI.HtmlControls.HtmlGenericControl divCurrent = 
    new System.Web.UI.HtmlControls.HtmlGenericControl("div");


foreach (string imgSrc in imgSrcs)
{
    Image img = new Image();
    img.ImageUrl = imgSrc;
    divCurrent.Controls.Add(img);
    if (i++ ==5) {
        divMain.Controls.Add(divCurrent);
        divCurrent = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
        i = 0;
    }
}

//then add the stragglers...
if (divCurrent.Controls.Count > 0) divMain.Controls.Add(divCurrent);

答案 2 :(得分:0)

在类似的情况下,我使用了两个嵌套的Repeater或ListViews(我无法使用普通计数进行分组):第一个用于<div>,第二个用于内容。加上GroupBy Linq方法将完整列表分组到我想要显示的组中。