<!-- start parent repeater -->
<asp:repeater id="parent" runat="server">
<itemtemplate>
<b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>
<!-- start child repeater -->
<asp:repeater id="child" datasource="<%# ((DataRowView)Container.DataItem)
.Row.GetChildRows("myrelation") %>" runat="server">
<itemtemplate>
<%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>
<%# DataBinder.Eval(Container.DataItem,"au_id") %>************************
</itemtemplate>
</asp:repeater>
<!-- end child repeater -->
</itemtemplate>
</asp:repeater>
<!-- end parent repeater -->
上边带******行的效果怎么实现,如果直接按照上边的写法,会出错的
第一步:
在页面的后台代码中声明一个变量:
protected object ParentDataItem; // 注意是受保护的
第二步:
然后处理 parent 控件的 ItemDataBound 事件:
private void parent_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
ParentDataItem = e.Item.DataItem;
}
第三步:
把
<%# DataBinder.Eval(Container.DataItem,"au_id") %>************************
改成:
<%# DataBinder.Eval(ParentDataItem,"au_id") %>************************