2012-02-03 51 views
0

我有一個嵌套中繼器的情況下,子中繼器嵌套在父中繼器的ItemTemplate中。父級的數據源是Dictionary<String, List<XYZ>>。 在我使用的完整代碼父直放站ItemDataBound嵌套中繼器 - 在頁腳的父行訪問值

 protected void rptParent_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
     if (e.Item.DataItem is KeyValuePair<String, List<Object>>) 
      { 
       pair = (KeyValuePair<String, List<XYZ>>)e.Item.DataItem; 
      } 

      Repeater childRepeater = e.Item.FindControl("rptChild") as Repeater; 

      //bind the child repeater. 
      childRepeater.ItemDataBound += new RepeaterItemEventHandler(childRepeater_ItemDataBound); 
      childRepeater.DataSource = pair.Value; 
      childRepeater.DataBind(); 
    } 
} 

protected void childRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Footer) 
     { 
    //Access the Parent row's Key value 

    } 
    } 

有2個問題:

  1. 我可以使用隱藏域,同時結合母體並將其設置爲關鍵值,然後檢索子項中的隱藏字段值?

  2. 請問射擊是如下的事件順序:

一個。 Parent_ItemDataBound第1行的Dictionary<Key, List<XYZ>>

i。 Child_ItemDataBound對於每個父直放站的行1的子行

ii。 Child_ItemDataBound兒童中繼器的頁腳

b。 Parent_ItemDataBound第2排的Dictionary<Key, List<XYZ>>

i。 Child_ItemDataBound對於每個父直放站的第2行的子行

ii。 Child_ItemDataBound兒童中繼器的頁腳

等等。換句話說,Parent_ItemDataBound之後是每個子行的Child_ItemDataBound事件 - 循環重複嗎?

回答

0

以下是回答你的問題:

  1. 是的,你可以訪問父repeater項目控制

    VAR HFID = e.Item.NamingContainer.NamingContainer.FindControl( 「HFID」)作爲HiddenField;

  2. 該訂單是正確的。

希望

幫助

+0

非常感謝塞巴斯蒂安。 – Vikas 2012-02-03 16:05:10