今天做了一个小东西,功能类似于淘宝的产品分类列表。如图:
我是采用了双层嵌套Repeater绑定,不知道大家还有没有更好的方法,有的话放上来分享一下啊!下面看我做的例子吧
首先前台页面加两个Repeater了
然后就是数据集了,在后台我是用DataSet作为数据集的。先在数据库中创建了一个存储过程,这个存储过程就是返回两个数据集(也就是执行了两个SELECT),然后执行这个存储过程,用DataSet来接收了。再就是创建DataSet的关系吧(这个我也还没去做深入了解),最后将这个DataSet绑定到外层的Repeater。下面看代码:
Code
DataClass dc = new DataClass();
DataSet ds = dc.ExecuteDataSet("sp_AuctionAndComment", CommandType.StoredProcedure);
ds.Relations.Add("auctionandcomment", ds.Tables[0].Columns["AuctionID"], ds.Tables[1].Columns["AuctionID"]);
Repeater1.DataSource = ds ;
Repeater1.DataBind();
ds.Dispose();
下面就是关于前台绑定数据的问题了,外层的Repeater和平常的绑定方法是一样的,这里就不多说了。关键看一下里层的Repeater的DataSource和显示绑定。看代码:
Code
<asp:Repeater ID="Repeater2" runat="server" DataSource='<%# ((System.Data.DataRowView)Container.DataItem).Row.GetChildRows("auctionandcomment") %>'>
<ItemTemplate>
<span class="pr_icon"><%#Eval("[\"Content\"]")%> [<%#Eval("[\"NickName\"]")%>-<%#Eval("[\"CreateDate\"]")%>]</span><br />
</ItemTemplate>
</asp:Repeater>
至此大功告诉,有不足之处请大家不不吝赐教。还有大家有什么更好的方法,请发上来分享一下。谢谢!