我想在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。
答案 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方法将完整列表分组到我想要显示的组中。