一切为了DotNet

念天地之悠悠,独怆然而涕下

 

Repeater的嵌套

最近由于做项目中用到了Repeater的嵌套,于是调查了一下,发现其实很简单,要做的操作也就是在前台给子repeater设定datasource,然后在后台<%# Ctype(Container.DataItem,DataRowView).CreateChildView("myrelation") %>把取出的数据在dataset中作个Relation,然后绑定父层Repeater即可部分代码如下:
前台代码:
 1<asp:Repeater id="parentRepeater" runat="server">
 2                <itemtemplate>
 3                    <b>
 4                        <%# DataBinder.Eval(Container.DataItem, "Enquiry_No") %>
 5                    </b>
 6                    <br>
 7                    <asp:repeater id="childRepeater" 
 8                    DataSource = <%# Ctype(Container.DataItem,DataRowView).CreateChildView("myrelation") %> runat="server">

 9                        <itemtemplate>
10                            <%# DataBinder.Eval(Container.DataItem, "QuestionName")%>
11                            <br>
12                        </itemtemplate>
13                    </asp:repeater>
14                </itemtemplate>
15            </asp:Repeater>
后台代码:
 1Dim ds As New DataSet("dsEnqueiry")
 2            Dim dsTemp As New DataSet
 3            Dim objEnquiry As New Enquiry_Business
 4
 5            dsTemp = objEnquiry.GetAllEnquiry()
 6            dsTemp.Tables(0).TableName = "Enquiry"
 7            ds.Tables.Add(dsTemp.Tables("Enquiry").Copy)
 8
 9            dsTemp = objEnquiry.GetAllQuestion()
10            dsTemp.Tables(0).TableName = "Question"
11            ds.Tables.Add(dsTemp.Tables("Question").Copy)
12
13            ds.Relations.Add("myrelation", ds.Tables("Enquiry").Columns("Enquiry_No"), _
14            ds.Tables("Question").Columns("EnquiryNo"))
15
16            Me.parentRepeater.DataSource = ds.Tables("Enquiry").DefaultView
17            Me.parentRepeater.DataBind()

posted on 2006-06-13 09:56  一切为了DotNet  阅读(410)  评论(0编辑  收藏  举报

导航