相互嵌套的repeater,被嵌套的怎么引用外边的repeater的列?

就是说我要在里面的repeater的itemtemplete里面引用外部的repeater的一个列的值。   

  <!--   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")   %>************************

posted @ 2011-01-12 11:48  tangself  阅读(175)  评论(0编辑  收藏  举报