嵌套数据绑定

今天做了一个小东西,功能类似于淘宝的产品分类列表。如图:

我是采用了双层嵌套Repeater绑定,不知道大家还有没有更好的方法,有的话放上来分享一下啊!下面看我做的例子吧

 首先前台页面加两个Repeater了

然后就是数据集了,在后台我是用DataSet作为数据集的。先在数据库中创建了一个存储过程,这个存储过程就是返回两个数据集(也就是执行了两个SELECT),然后执行这个存储过程,用DataSet来接收了。再就是创建DataSet的关系吧(这个我也还没去做深入了解),最后将这个DataSet绑定到外层的Repeater。下面看代码:

        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和显示绑定。看代码:

<asp:Repeater ID="Repeater2" runat="server" DataSource='<%# ((System.Data.DataRowView)Container.DataItem).Row.GetChildRows("auctionandcomment") %>'>
                              <ItemTemplate>
                                <span class="pr_icon"><%#Eval("[\"Content\"]")%>&nbsp;&nbsp;[<%#Eval("[\"NickName\"]")%>-<%#Eval("[\"CreateDate\"]")%>]</span><br />
                              </ItemTemplate>
</asp:Repeater>

至此大功告诉,有不足之处请大家不不吝赐教。还有大家有什么更好的方法,请发上来分享一下。谢谢!

posted @ 2008-11-21 17:35  老齐编程  阅读(185)  评论(0编辑  收藏  举报